我有一个表(xTable,3 列:名称、开始、停止)。在另一张纸上我有一个我正在尝试制作的日历。 A1 行是日期。 A1 列是名称。
我正在尝试将 xTable 中的开始日期与 A1 行中的日期进行比较。如果找到日期,则查看 xTable 的第一列,如果等于 A1 列中的人名,则返回 true,否则返回 false。
类似于:=INDEX($B$2:$AF$14,ROW(A2)-1,MATCH($B$16,$B$1:$AF$1,0))="x"
但是对于我的一生,我无法让它工作...我在想也许是因为我有大约 400 行数据,但我只是不确定。任何帮助表示赞赏!另外,如果你知道 vba 解决方案,我总是可以使用它......但我更喜欢尝试将其保留在公式中。但乞丐不应该挑剔;)
| 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |etc--->
Name1|____|____|____|____|____|____|____|____|____|____|____|____|
Name2|____|____|____|____|____|____|____|____|____|____|____|____|
Name3|____|____|____|____|____|____|____|____|____|____|____|____|
Name4|____|____|____|____|____|____|____|____|____|____|____|____|
Name5|____|____|____|____|____|____|____|____|____|____|____|____|
Name6|____|____|____|____|____|____|____|____|____|____|____|____|
Name7|____|____|____|____|____|____|____|____|____|____|____|____|
Name8|____|____|____|____|____|____|____|____|____|____|____|____|
Name9|____|____|____|____|____|____|____|____|____|____|____|____|
Name |Start|Stop |
Name1| 3 | 6 |
Name1| 1 | 12 |
Name7| 10 | 10 |
Name3| 21 | 30 |
Name1| 9 | 12 |
Name9| 7 | 15 |
Name9| 1 | 3 |
最佳答案
如果我理解正确,您希望使用 xTable 中的开始日期填充日历,找到时使用 TRUE
,否则使用 FALSE
?
您可以在单元格 B2 中使用此公式并向右和向下填充:
=IF(COUNTIFS($A$13:$A$19,$A2,$B$13:$B$19,B$1*1)=0,FALSE,TRUE)
我使用 B$1*1
以防万一您将日期存储为 A1 行中的数字。否则,如果它们存储为日期但格式为 dd
(或等效格式),请改用 DAY(B$1)
。
该公式将使用 COUNTIFS
计算表 xTable 中具有相应名称和开始日期的行的出现次数。如果没有找到,它将返回 0,即 FALSE
。
关于Excel公式比较两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18556361/