【问题标题】:Employee absences in calendar (vlookup?)日历中的员工缺勤(vlookup?)
【发布时间】:2019-02-24 00:53:11
【问题描述】:

我正在处理一个与员工缺勤相关的案例,该案例与 Excel 中的可视化结构有关。

我设法通过 SQL 将数据提取到 Excel 中,并得到如下列表:

我需要如下概述,但找不到可以解决这种情况的公式:

第一张图片类似于一个巨大列表的摘录,主键是“员工”,这是确定第二张图片中正确位置所必需的,即日历中的视觉概览。

我需要在这些单元格中输入哪个公式(col[G] 到 col[XXX]),以便正确的数据下放置正确的“V”。

到目前为止,我已经弄清楚 Excel 如何检查日期“从”和“到”并相应地放置“V”,但逐行而不是总共调整到一名员工(就像我想在屏幕截图中一样)。

公式(它只检查日期是否介于两者之间):

=IF(AND(F$1<=$C2,F$1>=$B2),"V","")

您认为通过 VBA 解决这个问题更容易吗?我希望获得最好的性能,因为数据集很大,我认为在这种情况下使用公式会更快。

Vlookup 不适合这种情况,因为它只匹配找到的第一个条目,但可能类似?

感谢任何提示!

【问题讨论】:

  • 看起来你应该解雇员工 1
  • 谢谢@BigBen,我也试过了,但是我必须考虑其他功能的组合吗?只有 COUNTIFS 是不够的,不是吗?

标签: excel calendar


【解决方案1】:

使用INDEXAGGREGATE 返回每​​个员工的日期标题介于DATE_fromDATE_to 之间时的类型(V、S 等)。如果未找到匹配项,则将其包装在 IFEFROR 中以返回空白字符串。

例如:

=IFERROR(INDEX($D$2:$D$10000,AGGREGATE(15,6,ROW($1:$9999)/(($A$2:$A$10000=$E3)*($B$2:$B10000<=F$1)*($C$2:$C$10000>=F$1)),1)),"")

【讨论】:

  • 如何引用缺席类型,如我的第一个屏幕截图所示。 IF 语句为 TRUE 时,如何始终使用这些条目而不是“V”?员工也可能生病(“S”)。
  • 我是否必须使用员工 ID、开始日期和结束日期的组合来确定/匹配唯一缺勤类型?
  • 只有“V”和“S”两个选项吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多