Excel 公式:MATCH 可以识别 'n'&"01" 或 'n'&"02 "

Excel 公式:MATCH 可以识别 'n'&"01" 或 'n'&"02 "

我有一张 Excel 工作表(源),其 A 列包含简单的 ID 号(01 到 40000)。在另一张工作表(子)中,A 列包含相同的 ID 号,但添加了额外的 01 或 02;例如 0101 或 0102、250001 或 250002 等。因此,此 ID 号列表的长度几乎是其两倍。B 列包含数字。

我正在尝试从子表的 B 列中提取数据,并根据它是否有“01”或“02”将数字放入源表的 B 列或 C 列。

我的想法是使用 INDEX/MATCH,但我不确定如何编写匹配以考虑查找值的不完全匹配。MATCH(A1&"01",child!A1:A100000,)。

非常感谢任何提示和链接。

麦克风。

答案1

它应该可以工作,但依赖于匹配的数据类型。

如果中的数据child是数字,则此方法无效,因为n&"01"它是字符串。在这种情况下,您需要将其包装A1&"01"VALUE()公式中,以便在每个使用它的地方将其转换为数字。

由于没有进一步的详细信息,我将其从其余答案中省略了,但只需将其添加进去就足够了。


如果您可以对第二张表中的数据进行排序,那么您应该能够直接执行此操作VLOOKUP,如下所示:

=VLOOKUP( A1 & "01" , child!$A$1:$A$10000 , 2 , FALSE )

如果找到匹配项,则将返回B匹配行的列值,否则返回。因此,您需要将其包装在一行中以处理此问题(为了便于阅读,示例中使用了换行符):###01#N/AIF

=IF( ISNA( VLOOKUP(A1&"01",child!$A$1:$A$10000,2,FALSE) ) ,
                             "" , VLOOKUP(A1&"01",child!$A$1:$A$10000,2,FALSE) )

该公式将适用于列B,您需要相同的公式,但&"02"在列内C

答案2

在 B1 中:

=IF(ISNA(MATCH(A1&"01",child!$A$1:$A$10000,FALSE)),"",VLOOKUP(A1&"01",child!$A$1:$C$10000,2,FALSE)

在 C1 中:

=IF(ISNA(MATCH(A1&"02",child!$A$1:$A$10000,FALSE)),"",VLOOKUP(A1&"02",child!$A$1:$C$10000,3,FALSE)

并根据需要填写。

答案3

您的工作表名称似乎不匹配。从功能上讲,您的子工作表实际上是源。但是使用您的名称:

保持简单。使用 vlookup。这些方程式将数据拉入“源”表:

在 B 列中:

=vlookup(a4&"01",child!a$4:b$13,1,0)

在 C 列中:

=vlookup(a4&"02",child!$a$4:b$13,1,0)

假设数据从两个工作表的第 4 行开始。您需要扩展数据范围child!a$4:b$13以涵盖子工作表上的所有数据。然后填写方程式。

可能需要一些错误处理来控制#n/a行为:

=if(isna(vlookup(a4&"02",child!a$4:b$13,1,0)),"",vlookup(a4&"02",child!a$4:b$13,1,0))

相关内容