【发布时间】:2020-11-09 00:04:28
【问题描述】:
也许我在问一个非常基本的问题,但我在这里(和其他网站)搜索过答案,但找不到。
我正在 Google 表格上为我的工作场所制定工作时间表,类似于此处以图片形式发布的示例,其中包括为每个工人提供的自动考勤卡(即,回答“哪几天有[工人] 工作了吗?”)。
我设法用过滤器公式制作了一个
=FILTER(A2:A16;{or(COUNTIF(B2:D2;$L$1);COUNTIF(F2:H2;$L$1));or(COUNTIF(B3:D3;$L$1);COUNTIF(F3:H3;$L$1));or(COUNTIF(B4:D4;$L$1);COUNTIF(F4:H4;$L$1));or(COUNTIF(B5:D5;$L$1);COUNTIF(F5:H5;$L$1));or(COUNTIF(B6:D6;$L$1);COUNTIF(F6:H6;$L$1));or(COUNTIF(B7:D7;$L$1);COUNTIF(F7:H7;$L$1));or(COUNTIF(B8:D8;$L$1);COUNTIF(F8:H8;$L$1));or(COUNTIF(B9:D9;$L$1);COUNTIF(F9:H9;$L$1));or(COUNTIF(B10:D10;$L$1);COUNTIF(F10:H10;$L$1));or(COUNTIF(B11:D11;$L$1);COUNTIF(F11:H11;$L$1));or(COUNTIF(B12:D12;$L$1);COUNTIF(F12:H12;$L$1));or(COUNTIF(B13:D13;$L$1);COUNTIF(F13:H13;$L$1));or(COUNTIF(B14:D14;$L$1);COUNTIF(F14:H14;$L$1));or(COUNTIF(B15:D15;$L$1);COUNTIF(F15:H15;$L$1));or(COUNTIF(B16:D16;$L$1);COUNTIF(F16:H16;$L$1))}=TRUE)
这是使用手动数组列过滤的日期列 A2:A16,检查每一行 B:D(表示上午班次)或每一行 F:H(下午班次)是否包含工人姓名 $L$1。
这不是最佳解决方案,因为我必须以非常耗时且不灵活的方式手动编写数组(向轮班添加另一列/另一名工人意味着我必须纠正每一个行)。
还有其他更好的方式来使用 FILTER 吗?到目前为止,我一直在尝试使用 MATCH 或 HLOOKUP,但我是菜鸟,对 excel 数组不太熟悉。
【问题讨论】:
-
你想要的输出是什么?只是是和否的答案,还是轮班的名称?另外,B列有什么信息?下午 1 点上班?
-
这是一个很长的公式,我认为如果您可以提供指向带有一些示例数据的示例电子表格的链接,用户可以在其中尝试获得您想要的输出。
-
@nabais:正如你猜的那样,B 栏是凌晨 1 点上班,我不知道屏幕截图已经删掉了该栏