2017-05-30 43 views
0

Auto increment based on string match基于字符串匹配的Excel增量序列号

如何自动生成下一个CST编号为1238和204的VAT。 我试过INDEX & MATCH,MAX,COUNTIF都抛出循环引用错误。

CST & VAT按随机顺序手动输入。

希望有一个公式。不幸的是我不知道VBA。提前致谢。

回答

1

Ctrl键 + 移位输入 + 在B8输入以下数组公式并将其向下拖动:

=IF(A8<>"",IF(A8="CST",INDEX($B$2:B7,MAX(IF($A$2:A7="CST",ROW($A$2:A7)-ROW(INDEX($A$2:A7,1,1))+1)),0)+1,INDEX($B$2:B7,MAX(IF($A$2:A7="VAT",ROW($A$2:A7)-ROW(INDEX($A$2:A7,1,1))+1)),0)+1),"") 

编辑:上述fomula具有这样的缺陷,如果你包括的任何其他A列中的CST或增值税将返回最后一个增值税+ 1.使用以下方法可以避免这种情况:

=IF(A12="CST",INDEX(B6:B11,MAX(IF(A6:A11="CST",ROW(A6:A11)-ROW(INDEX(A6:A11,1,1))+1)),0)+1,IF(A12="VAT",INDEX(B6:B11,MAX(IF(A6:A11="VAT",ROW(A6:A11)-ROW(INDEX(A6:A11,1,1))+1)),0)+1,"")) 
+0

完美的作品nitesh谢谢:) – rhlchd

+0

你已经开始用** A8 <> “” * *,为什么不直接从** IF开始(A8 =“CST”**?这是避免循环引用的一种方法吗? – rhlchd

+0

如果我用** IF(A8 =“CST”**)开始它,那么如果将它拖到A列尚未填充的单元格中,它将返回最后一个增值税+ 1.另请注意,如果包含除列C中的CST或增值税以外的任何其他值,它都会将最后一个增值税值增加1.公式的逻辑将为列A中的值为“CST”,然后查找最后一个CST并添加1,否则查找最后一个增值税并加1. –

2

在B4公式将是:

=MAX(IF($A$2:$A3=A4;$B$2:$B3;0))+1 

这是数组公式,当你确认这个公式必须按Ctrl + Shift + Enter

+0

将公式放入B4并用Ctrl + Shift + Enter确认,然后将其拖至B20以检查其工作方式。但是CST/VAT条目(例如A7)停止显示B7中的杂散条目为1 2 3,直到B20。但是,在A8中输入CST/VAT后,它将更新B8以更正序列号和1 2 3被推下来,猜测我可以忍受这一点,谢谢你的公式:) – rhlchd

+0

@rhlchd如果嵌套在if(A4 <>“”,公式在这里,“”),它会工作更好和更简短的答案。 –

+0

嗯,你是对的。以避免这些杂散值的方式工作。再次感谢@NiteshHalai – rhlchd