结合 OFFSET 和 VLOOKUP

Combine OFFSET with VLOOKUP

我在 Excel 2013 年有两个工作表。在第一个工作表中,我的 A 列包含客户编号,例如999999(从 A2 开始),在第二个中我有一个 table 将旧数字格式与新格式匹配。所以我有一个带有新格式的 E 列,例如1111111111 和 F 列中连接的旧格式 999999(与第一个工作表中的相同)。

我想从 Sheet 1(A 列)中获取数字并在工作表 2(F 列)中搜索它,如果有匹配项,我想检查是否存在新格式匹配E列的数字,如果匹配则取新数,如果不匹配则取旧数

我试过这个,但是不行:

=IF(OFFSET(COLUMN(VLOOKUP(A2;'[Konzern Kunde HKunde_neu.xlsm]Konzern Kunde'!$F:$G6;1;FALSE))ROW(VLOOKUP(A2;'[Konzern Kunde HKunde_neu.xlsm]Konzern Kunde'!$F:$G5;1;FALSE));0;-1)<>"";OFFSET(COLUMN(VLOOKUP(A2;'[Konzern Kunde HKunde_neu.xlsm]Konzern Kunde'!$F:$G6;1;FALSE))ROW(VLOOKUP(A2;'[Konzern Kunde HKunde_neu.xlsm]Konzern Kunde'!$F:$G5;1;FALSE));0;-1);VLOOKUP(A2;'[Konzern Kunde HKunde_neu.xlsm]Konzern Kunde'!$F:$G00;1;FALSE))

请尝试第 2 行:

=IFERROR(INDEX(Sheet2!E:E;MATCH(A2,Sheet2!F:F;0));A2)  

已复制并调整您的 sheet 名称以适合。

哦,哇,太简单了。谢谢你。它就像一个魅力:) 是的,我忘了替换“;”带“,”是因为欧洲地区。抱歉。

这是我的完整解决方案。

(德语版) =WENN(ISTNV(SVERWEIS(A2;'Sheet2'!$F$2:$G$5000;1;FALSCH));SVERWEIS(A2;'Sheet2'!$E$2:$G$5000;1;FALSCH );WENN(INDEX('Sheet2'!$E$2:$E$5000;VERGLEICH(A2;'Sheet2'!$F$2:$F$5000;0))=0;SVERWEIS(A2;'Sheet2'!$F$2:$G$5000;1;FALSCH);INDEX('Sheet2'!$E$2:$E$5000;VERGLEICH(A2;'Sheet2'!$F$2:$F$5000 ;0))))

(英文版) =IF(ISNA(VLOOKUP(A2,'Sheet2'!$F$2:$G$5000,1,FALSE)),VLOOKUP(A2,'Sheet2'!$E$2:$G$5000,1,FALSE ),IF(索引('Sheet2'!$E$2:$E$5000,MATCH(A2,'Sheet2'!$F$2:$F$5000,0))=0,VLOOKUP(A2,'Sheet2'!$F$2:$G$5000,1,FALSE),INDEX('Sheet2'!$E$2:$E$5000,匹配(A2,'Sheet2'!$F$2:$F$5000 ,0))))

再次简短说明这是在做什么(请参阅上面的任务以了解 excel sheets 的结构): 它从 sheet 1 中的 "A2" 中获取一个值,并在 sheet 2 中的矩阵 "F2:G5000" 中搜索它。

如果未找到值,它将从 sheet 1 中的 "A2" 中获取值,并在 sheet2 中的矩阵 "E2:G5000" 中搜索它。

如果找到值,它将 returns 匹配的行并采用矩阵 E2:E5000 中该行的值。但是,如果从 E2:E5000 中获取的行的值为 0,则它返回给定行中 F2:F5000 中的值。

希望解释正确并易于理解。

再次感谢。

问候 Domi