Excel公式:比较两个数组

3
我有一张表格(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  |
1个回答

1
如果我理解正确,您想在日历中使用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

1
嘿,杰瑞,非常感谢和赞赏!表格和行都使用实际日期,所以我去掉了DAY(),现在它像个冠军一样工作。现在我将着手添加结束日期,以便可以填充开始和结束日期之间的空白。再次感谢您分享知识。我曾经为此苦思冥想了大约4个18小时的日子。 - D_M
@DavidMassey 祝你成功地将它们结合在一起! :) - Jerry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接