Excel公式巧解混合查找:一对多匹配 一对一速配攻略

时间:2025-01-01

以下是对您提供内容的改写,保持了原内容的写作手法,并确保了字数不少于原内容,同时进行了排版调整:

在日常工作实践中,我们可以通过一个具体的例子来理解仓库SKU与商品SKU之间的数据关系。在这个例子中,我们有一个两列的数据对应关系表,左边一列是仓库SKU,右边一列是商品SKU。这两列数据之间存在一种特定的联系,即它们之间有的是一一对应的关系,但也有一些特殊情况,表现为一对多的关系。

为了从仓库SKU中准确地匹配出对应的商品SKU信息,我们通常会使用XLOOKUP函数进行查找。当我们输入以下公式:

=XLOOKUP(D2, A:A, B:B)

这个公式能够顺利地完成一对一的查找匹配,并展示出对应的结果。然而,当原始数据中存在多个匹配结果时,XLOOKUP函数只能显示出第一条结果,而忽略了其他匹配项。

为了解决这一问题,我们可以运用Filter和TextJoin公式的组合。首先,我们来看Filter公式的用法:

=FILTER(查找列, 查找条件=查找值)

与XLOOKUP函数相比,Filter函数在存在多条匹配结果时,能够将所有符合条件的记录都检索出来。例如,当我们输入以下公式:

=FILTER(B:B, A:A=D3)

它将自动列出所有符合条件的两个结果,而不是仅显示第一条。

为了进一步处理这些匹配结果,我们可以结合使用转置公式TRANSPOSE。具体的公式如下:

=TRANSPOSE(FILTER(B:B, A:A=D2))

当存在多条匹配结果时,这个公式能够将所有匹配的记录转置并匹配出来。由于TRANSPOSE是一个数组公式,它会在右侧单元格中自动溢出显示。

如果我们不希望单元格溢出并希望在E列中展示所有结果,那么我们可以结合使用TextJoin公式。通过以下方式实现:

=TEXTJOIN("", TRUE, TRANSPOSE(FILTER(B:B, A:A=D2)))

这样,所有的匹配结果都会被完整地显示在E列中,满足了我们的需求。