我有这个数据集:
92127
96001-1
94533-1
95630
95677
95630
我需要这个输出
92127-1
95630-1
95677-1
95630-2
这是逻辑:
如果此列中不存在92127
,那么它应为92127-1
;然而,如果它存在,那么它应该是92127-(这里最大的数字是+1),所以如果最大的数字是92127-5,那么它应该是92127-6
是否可以将其变成公式?
答案 0 :(得分:3)
这是我的:
=IF(LEN(A2)>5,A2,A2&"-"&SUMPRODUCT(--(LEFT($A$2:$A2,5)=LEFT(A2,5))))
A2:A7
92127
96001-1
94533-1
95630
95677
95630
B2:B7(你把公式放在哪里)
92127-1
96001-1
94533-1
95630-1
95677-1
95630-2
编辑:以上假设五位数前导号的第一个实例没有-n,并使用该五位前导号的计数将-n附加到后续实例。但是,如果95630的第一个实例是95630-2,则上述操作失败。字符串操作不适用于数组公式,所以我认为唯一的选择是使用帮助列。您的数据在A2:A7中,
B2: =IF(ISERR(FIND("-",A2)),A2,LEFT(A2,5))
C2: =IF(ISERR(FIND("-",A2)),0,MID(A2,FIND("-",A2)+1,LEN(A2)))
D2: =B2&"-"&IF(ISERR(FIND("-",A2)),MAX(($B$2:$B$7=B2)*($C$2:$C$7))+1,C2)
并填充到第7行.B2和C2将数字拆分为五个前导数字和-n后缀(如果有)。如果没有-n,则返回0.使用Control + Shift + Enter输入D2,因为它是一个数组公式。它找到当前五个前导数字的最大值-n,加一,并将其追加到五个前导数字。
辅助列使其更加繁琐,但我找不到更好的方法。
答案 1 :(得分:1)
既然你想在那里保留'-1'(根据评论),这应该有效:
假设'Existing'在单元格A2:An中,此公式在B2中,可以向下复制到Bn。
=LEFT(A2,5)&TEXT(COUNTIF(A$2:A2,LEFT(A2,5))+IF(ISERROR(VALUE(MID(A2,7,1))),0,VALUE(MID(A2,7,1))),"-0;;")
我的结果如下:
现有
92127
96001-1
94533-1
95630
95677
95630
新
92127-1
96001-1
94533-1
95630-1
95677-1
95630-2