我们有一份所有员工的电子表格,我需要生成一份所有员工的清单,这些员工的3个月试用期即将在下周到期。
换句话说,我需要一个列表,该列表将自动显示3个月试用期即将在未来7天内到期的所有员工记录。它需要是一个数组,因为每周会有多个记录,它们每天都会改变。
A列是他们的ID号,这是我需要返回的值。
我们的数据如下所示:
A B C
ID Name Hire Date
1234 Joe Blow February 21, 2014
2345 Man Chu February 26, 2014
3456 Jim Hill February 26, 2014
4567 Brad Chill February 28, 2014
5678 Mike Grow March 5, 2014
6789 Hibs Bee March 5, 2014
1230 Sarah Mean March 7, 2014
我试过像这样的索引和匹配`{= INDEX($ A:$ A,SMALL(IF(AND($ C:$ C"> ="&(今天) ()-90),$ C:$ C"< ="及(今日() - 80)),ROW($ C:$ C)),ROW(1:1)), 1)}以及其他一些公式,但它不起作用,我无法弄清楚原因。
非常感谢任何帮助。这让我发疯了!
答案 0 :(得分:0)
您的意见和公式表明您希望找到雇用日期介于80到90天之前(包括80天)的员工。 90天不会总是三个月,但如果这是一个问题,你可以随时更改功能。
以下数组输入公式将返回其hiredate符合这些规格的员工ID列表与H1中的日期相比较。在某个单元格中输入公式,并尽可能填写。当不再符合规格时,公式将返回空白。该公式假定ID列是A列,并且第一个条目位于A2(A1中的标题)中,如您在示例中所示。
HireDate和ID是引用的命名范围,在本例中为A2:A8和C2:C8
=IFERROR(INDEX($A:$A,SMALL(((HireDate+80)<=$H$1)*((HireDate+90)>=$H$1)*ROW(ID),SUM(N(((HireDate+80)<=$H$1)*((HireDate+90)>=$H$1)=0))+ROWS($1:1))),"")
此公式必须数组输入:
array-enter 一个公式 公式进入单元格或公式栏,按住 ctrl-shift ,同时点击输入。如果你这样做了 正确地说,Excel会在公式周围放置大括号 {...} 。
答案 1 :(得分:0)
定义名称:
然后在任何其他列(例如,列D)中,为每个记录输入公式:
= IF(AND(TargetDate-HireDateCol&GT; 80,TargetDate-HireDateCol&LT; 90),IDCol,&#34;&#34)
D列中显示的内容则是任何内容(&#34;&#34;)或雇用日期在您所需范围内的员工的ID。您可能想要使用&#34;&gt;&#34;和&#34;&lt;&#34;确保范围[80,90]是正确的。也许它们应该是&lt; =或&gt; =。您可能希望参数化80和90(将它们输入命名单元格),以便在需要时更容易更改。另外,我建议不要在单元格TargetDate中使用公式= TODAY()。请改用实际日期。这将允许您正确计算任何日期,过去或未来的列表;你不会被困在今天的约会。 --HTH