Excel公式比较两个数组

时间:2013-09-01 07:50:20

标签: excel excel-vba excel-formula excel-2010 vba

我有一个表(xTable,3列:Name,Start,Stop)。在另一张纸上,我有一个我想制作的日历。 A1行是日期。 A1列是名称。

我正在尝试将xTable中的开始日期与A1行中的日期进行比较。如果找到日期,请查看xTable的第一列,如果它等于A1 colum中人物的名称,则返回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 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望在找到时使用TRUE填充xTable的开始日期,而使用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