2017-05-30 45 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