结合 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
我在 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