VLOOKUP 循环

问题描述 投票:0回答:1

我在 Excel 中有两个大数据集,2k 行,30 列。它是员工轮班的条目,一个是一月的,另一个是二月的。 这些集合有所不同,因为有些员工被雇用,有些员工离开,有些员工换班。我正在使用 VLOOKUP 检查上个月工人的班次(相当于全职时间,例如 50%)是否发生变化。 对于多班次的工人来说,这会失败,因为 VLOOKUP 仅查找它找到的第一个值。 这是一个例子。 enter image description here 这是我的公式。

=IF(VLOOKUP(G22,C21:D25,2,0)=H22,"match","no match")

现在,如果存在“不匹配”,我想触发另一个 IF,看看我下面的行是否具有相同的员工 ID,如果是,检查行移位是否与我们现在拥有的相匹配。

问题是我无法使VLOOKUP查找范围静态,因为数据集太大。 有什么想法吗?

我尝试将 ROW、CHOOSEROW、HLOOKUP 与 VLOOKUP、LOOKUP 等一起使用。

excel excel-formula excel-2010
1个回答
0
投票

信息有点稀缺,仍然将其粘贴到新表中以获得可能的解决方案:

一月 二月
身份证 转变 身份证 转变 和以前一样吗?
4545 1 4545 1
=IF(COUNTIF(A:A,E4)>0,IF(F4=INDEX(B:B,AGGREGATE(15,6,ROW(A:A)/(A:A=E4),COUNTIF($E$4:E4,E4))),"match","no match"),"new entry")
5959 0,6 5959 0,6
=IF(COUNTIF(A:A,E5)>0,IF(F5=INDEX(B:B,AGGREGATE(15,6,ROW(A:A)/(A:A=E5),COUNTIF($E$4:E5,E5))),"match","no match"),"new entry")
5959 0,4 5959 0,4
=IF(COUNTIF(A:A,E6)>0,IF(F6=INDEX(B:B,AGGREGATE(15,6,ROW(A:A)/(A:A=E6),COUNTIF($E$4:E6,E6))),"match","no match"),"new entry")
2598 1 2598 1
=IF(COUNTIF(A:A,E7)>0,IF(F7=INDEX(B:B,AGGREGATE(15,6,ROW(A:A)/(A:A=E7),COUNTIF($E$4:E7,E7))),"match","no match"),"new entry")
1313 0,7 1313 0,3
=IF(COUNTIF(A:A,E8)>0,IF(F8=INDEX(B:B,AGGREGATE(15,6,ROW(A:A)/(A:A=E8),COUNTIF($E$4:E8,E8))),"match","no match"),"new entry")
1313 0,3 7171 0,5
=IF(COUNTIF(A:A,E9)>0,IF(F9=INDEX(B:B,AGGREGATE(15,6,ROW(A:A)/(A:A=E9),COUNTIF($E$4:E9,E9))),"match","no match"),"new entry")

我不得不猜测这两个列表的顺序都是正确的,因此一月份第一次出现的 ID 应该与二月第一次出现的 ID 相对应,第二次出现的应该与第二次出现的 ID 相对应......依此类推。

© www.soinside.com 2019 - 2024. All rights reserved.