excel 为具有重复值的列组合分配唯一编号

yxyvkwin  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(173)

我有一个示例csv/excel列,看起来像下面。(我试图上传一个示例数据,但我找不到一个网站,其中可共享csv链接。

我想创建一个名为“重复”的新列,按顺序计算这两列的组合。我想让此“重复”列为这些列重复分配唯一的编号,因为我必须单独分析它们。每行都是唯一的数据点,但命名不适合我的目的。计算应基于第一列的“字符串”条件,然后基于第二列的"子重复数“条件。
例如,如果我总共有6个“C和1”组合,则“复制”列应该从1到6递增。然后找到“C和2”组合,并从7向上计数。T+C也是如此。我希望首先计数“T+C和1”,然后计数“T+C和2”。即使“Ctrl和3”在Excel中首先显示,我也希望首先计数“Ctrl和1”。
我在下面创建了一个示例列。

我希望我说的是有道理的。我一直很困,任何帮助都是很大的。谢谢你的时间!

qv7cva1a

qv7cva1a1#

您可以在单元格D1中尝试以下公式:

=LET(AB, A1:A20&"-"&B1:B20,seq,SEQUENCE(ROWS(AB)), srt, SORT(HSTACK(seq, AB),2), 
 sAB, INDEX(srt,,2), cnts, SCAN("", seq, LAMBDA(ac, s, IF(ac="", 1, 
    IF(INDEX(sAB, s) = INDEX(sAB, s-1), ac+1, 1)))),
 SORTBY(cnts, INDEX(srt,,1)))

下面是输出:

主要思想是对数据进行排序,这样我们就可以计算重复的值,但有一种方法可以返回到原始排序(seq)。
sAB表示列AB的排序连接,因此现在我们可以通过SCAN函数计算值的重复次数,并将其命名为cnts。然后我们只需将cnts按原始顺序放置,并为此使用SORTBY函数。

相关问题