计算重复单元格及其出现的位置

时间:2019-07-17 01:15:47

标签: excel

我正在尝试建立一个仅在一列中查找唯一值的系统,如果没有,请列出它们出现在多少行中。

它是如何工作的: 里面有带帽子的袋子。包包有多个帽子,相同的帽子可以分布在不同的包包之间。我试图最终达到可以抬起帽子的位置,它可以告诉我它在哪一个包中。

我已经在Excel上查找了教程,但是大多数教程似乎都适用于数字,而我的资料中有一个“序列”,由描述每个项目的字母组成。

请考虑以下内容:

╔════════╦═════╦═══════════╦════════╦════════╗
║ Serial ║ Bag ║   Style   ║ Colour ║  Size  ║
╠════════╬═════╬═══════════╬════════╬════════╣
║ SREDCP ║   1 ║ Cap       ║ Red    ║ Small  ║
║ SGRNST ║   2 ║ Straw hat ║ Green  ║ Small  ║
║ MGRYBN ║   3 ║ Beanie    ║ Grey   ║ Medium ║
║ SREDCP ║   4 ║ Cap       ║ Red    ║ Small  ║
╚════════╩═════╩═══════════╩════════╩════════╝

项目SREDCP出现在袋子14中。我想要的是这样的:

╔════════╦════════╗
║ Serial ║ Bag(s) ║
╠════════╬════════╣
║ SREDCP ║    1,4 ║
║ SGRNST ║      2 ║
║ MGRYBN ║      3 ║
╚════════╩════════╝

我在excel公式中的经验几乎为零,我想sql可能会更简单,但是我不知道如何设置服务器或任何要求

2 个答案:

答案 0 :(得分:0)

一个简单的解决方案是为每个Serial创建一个要查看的值的列,然后在该列上使用TEXTJOIN获取列表。因此,在数据右侧添加一个标题为SREDCP的列。假设F1中包含“ SREDCP”。在F2中,添加公式=IF($A2 = F$1, $B2, "")并向下复制公式。

您希望在这些行和空白之间看到一个1和4。

然后在下面的某处添加公式=TEXTJOIN(",",TRUE,F2:F5),您将看到此解决方案的工作原理。

TEXTJOIN的第一个参数在术语之间添加逗号,第二个参数设置为true则告诉Excel不要担心空白单元格。

现在要添加其他序列号,您可以将F列复制到G列中,并且已经设置好,只需更改第1行中的Serial值即可。

但是,假设您的解决方案具有比显示的数据更多的数据,您可能希望设置一个包含所有序列号的工作表,然后查看引用该表的结果。因此,将列F,G等移至新的工作表。如果需要的话。

答案 1 :(得分:0)

此数组公式将执行您想要的操作:

=TEXTJOIN(",",TRUE,IF(ISNUMBER(MATCH($A$2:$A$5, G2, 0)), MATCH(ROW($B$2:$B$5), ROW($B$2:$B$5)), ""))

输入后按CTRL-SHIFT-ENTER,而不是直接输入,因为它是一个数组公式。

您可以在此处找到有关其工作方式的详细信息:

https://www.get-digital-help.com/2017/12/05/index-match-multiple-results/

特别是该页面上的第3步。