我有一本名为12月的工作簿,名为1月,2月至12月。在每张纸上,我每个月的每一天都有员工出席。现在的挑战是,我想在一个工作表中编译列表,该工作表的A列中有雇员的姓名,而在行中,我的日期是1月1日至12月31日。
我可以使用单个Vlookup()
还是Match()
和Index()
公式得出结果吗?我已经尝试过了,最终得到了公式:
=VLOOKUP($A:$A,'Jan '!A:AK,COLUMNS($B1:B1)+1,0)
但是,我希望在31次出现后将工作表名称更改为Feb,依此类推,列$B1:B1
的范围也会在31次出现后从相同的位置重新开始。
我希望我的查询清楚。请帮忙。
答案 0 :(得分:1)
如果您每个月都有单独的工作表,则等价于您的公式
=VLOOKUP($A2,INDIRECT(TEXT($B$1+COLUMNS($B:B)-1,"mmmm")&"!A:AK"),DAY($B$1+COLUMNS($B:B)-1)+1,FALSE)
从B2开始,并假设您在B1是一年中的第一天。
但是,如果您在一年中的每个日期的工作表的第一行中都有标题,则可以简化操作
=VLOOKUP($A2,INDIRECT(TEXT(B$1,"mmmm")&"!A:AK"),DAY(B$1)+1,FALSE)
这适用于称为一月,二月等的工作表。如果名称为一月,二月等,则将“ mmmm”更改为“ mmm”。