Excel:在多列中查找具有重复项的多个值
Posted
技术标签:
【中文标题】Excel:在多列中查找具有重复项的多个值【英文标题】:Excel: Lookup Multiple values with duplicates in multiple columns 【发布时间】:2019-09-06 22:51:32 【问题描述】:我正在尝试链接多个列表并显示所有值。包括重复。 我的工作表有 11 列中的数据。一列是产品(可以出现多次),其余是商店(销售产品,没有商店销售相同的产品)。 这里有一个小例子:
我使用以下公式制作了一个辅助列 (A):=B2&COUNTIF($B$2:B2,B2)
。帮助列计算产品在产品列 (B) 中出现的次数。我认为这是必要的。
我已经设法使用=VLOOKUP($C$2&ROWS($L$1:L1),$A$2:$C$11,2,0)
对数据进行了一些排序,如下所示:
结果
但我想对每个商店的单个列中的数据进行排序,如下所示:
期望的结果
,不必每 2-3 行更改一次公式,因为某些商店有 30 种左右的产品。 这是否可以通过公式或 VBA 实现?
我想在一列中显示结果:
列出商店 1 项的次数与它们在产品列中出现的次数一样多。 如果商品(来自商店 1)未显示在产品列中,则显示“产品名称 -” 产品列可以有可重复的项目 每家店的产品都不一样,所以不存在冲突。 如果可能的话,因为我有他们的帮助列,如果一个产品显示 4 次,当我将公式拖到第 5 行时,它应该跳转到下一个产品。希望这足够清楚。谢谢
稍后编辑:也许这有助于理解我想要获得的东西。
第 1 列助手我已添加它来计算产品在第 2 列中出现的次数。我想获得一个单独的列,它显示第 3 列(store1)中的项目 x 它们出现了多少次出现在产品栏中。 在上面的示例中,Store1 的产品“Hansa”在产品列中出现了 4 次,因此它应该在单独的列中出现 4 次,之后产品“Korek”在产品列中出现 1 次,所以它应该在“Hansa”下的单独列中出现一次,依此类推。所以基本上我想将第三列与第二列进行比较,并在第三个 x 次中显示值,它们出现在不同列的第二个中。
【问题讨论】:
不是很清楚,真的。 Column1 Helper,Column 2 Product,Column 3(商店?)。那么它是如何将 Store 和产品联系起来的呢?哪家店有哪款产品?您在寻找什么没有问题,但信息似乎不是很清楚。至少关系 @DavidGarcíaBodego 我已经在问题中添加了一些更多信息,也许在清除。简而言之,我想将第 3 列中的值与第 2 列进行比较,假设第 4 列我想获得第 3 列中的值 x 它们出现在第 2 列中的次数。第 1 列只计算值出现在第 2 列中的次数2. 现在很清楚了。使用您的实际工作表(您的样本),在 D 列中放置: IFERROR(INDEX($B$2:$B$11,MATCH(0,INDEX(COUNTIF($D$1:D1,$B$2:$B$11),0 ,0),0)),"产品名称 -") 并在 E 列将 COUNTIF($D$2:$D$11,"="&D2,$A$2:$A$11) 都放在第 2 行。现在您可以拖着它。在 D 列中,您将获得出现在 B 列中的产品(不重复),如果没有,它将放置“产品名称 -”,在 E 列中,您将获得它出现的次数。稍后根据您的需要复制和粘贴。希望对您有所帮助。 @DavidGarcíaBodego 似乎正在工作,有没有办法在一列中获得结果。例如在 D 列中:Hansa 将出现 4 次,然后切换到下一个产品。看看我想要的结果图片来了解一下。 【参考方案1】:此公式使用F1
作为辅助单元格,这是计算产品列表中的匹配项所必需的。
在F1
中输入此FormulaArray
:
=SUM( IF( ISERROR( MATCH( $B$2:$B$11, $C$2:$C$6, 0 ) ), 0, 1 ) )
在E2:E11
中输入这个公式:
= IFERROR( INDEX( $C$2:$C$6,
AGGREGATE( 15, 6,
MATCH( $B$2:$B$11, $C$2:$C$6, 0 ),
ROWS( E$2:E2 ) ) ),
IFERROR( INDEX( $C$2:$C$6,
AGGREGATE( 15, 6,
ROW(E:E) / ISERROR( MATCH( $C$2:$C$6, $B$2:$B$11, 0 ) ),
ROWS( E$2:E2 ) - $F$1 ) ) & "-", "" ) )
请注意,辅助列 A
是不需要的。
【讨论】:
以上是关于Excel:在多列中查找具有重复项的多个值的主要内容,如果未能解决你的问题,请参考以下文章