【问题标题】:Making a dynamic timecard for a work schedule in excel在excel中为工作时间表制作动态时间卡
【发布时间】: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 点上班,我不知道屏幕截图已经删掉了该栏

标签: google-sheets spreadsheet


【解决方案1】:

将此公式发布到您的K2 单元格中:

=query(
  {{A2:A\B2:D};{A2:A\F2:H}}; 
  "select Col1 where Col2 = '"&L1&"' or Col3 = '"&L1&"' or Col4 = '"&L1&"'"
)

它将与您的工人动态合作:

【讨论】:

  • 谢谢!这就像一个魅力。奇怪的是 FILTER 不允许这样做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 2016-06-16
  • 2016-04-28
相关资源
最近更新 更多