Excel:查找多个值,多个列中有重复项

时间:2019-09-06 22:51:32

标签: excel vba excel-formula

我正在尝试链接多个列表并显示所有值。包括重复项。

我的工作表的数据分为11列。一列包含“产品”(可以多次出现),其余列与“商店”(出售产品,没有商店出售相同的产品)。 这里有个小例子:

Example

我已使用以下公式创建了辅助列(A):=B2&COUNTIF($B$2:B2,B2)。帮助器列计算产品在“产品”列(B)中显示的时间。我认为这是必需的。

我已经设法使用=VLOOKUP($C$2&ROWS($L$1:L1),$A$2:$C$11,2,0)来对数据进行一些排序,如下所示:

结果

Result Attempt

但是我想像这样将每个商店的数据按单个列排序:

所需结果

Desired Result

,而不必每2-3行更改一次公式,因为某些商店有30种左右的产品。

使用公式或VBA可以实现吗?

我希望将结果放在一栏中:

  • 列出1个商品,与“产品”列中显示的一样多。
  • 如果商品(来自商店1)未出现在“产品”列中,则显示“产品名称-”
  • 产品栏可以包含可重复项
  • 每个商店都有不同的产品,所以那里没有冲突。
  • 如果可能的话,因为有帮助列,所以如果某产品显示4次,则在将公式拖到第5行时,它应该跳至下一个产品。

希望这很清楚。谢谢

后来编辑:
也许这有助于理解我想要获得的东西。

第1列帮助程序我已添加它,以计算产品在第2列中出现的次数。
我想获得一个单独的列,该列显示第3列(store1)中的项目x多少次它们出现在“产品”列中。

在上面的示例中,Store1的产品“ Hansa”在“产品”列中出现了4次,因此应在单独的列中出现4次,在产品“ Korek”在产品列中出现了1次之后因此它应该在“ Hansa”下的单独列中出现一次,依此类推。因此,基本上我想将第三列与第二列进行比较,并在第三次中显示它们在不同列中第二次出现时的值。

1 个答案:

答案 0 :(得分:1)

此公式使用F1作为辅助单元格,该单元格用于计算产品列表中的匹配项。

FormulaArray中输入此F1

=SUM( IF( ISERROR( MATCH( $B$2:$B$11, $C$2:$C$6, 0 ) ), 0, 1 ) )

enter image description here

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 ) ) & "-", "" ) )

enter image description here

请注意,不需要辅助列A