[[20190604154140]] 『文字列と数字の混在したコードの末尾を連番にして』(みそ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字列と数字の混在したコードの末尾を連番にして最後尾を自動で振りたい』(みそ)

文字列を含むコードの下3ケタを連番にし、
コード履歴から連番最後尾を求め、自動でコードを振る事は可能でしょうか?

コードのルールは
種類、2ケタの発行月、3ケタの連番(当月同種類の発行数)の組合せとなっており
例えば「あ」の商品の注文書を6月に発行、「あ」の注文書を発行したのが当月4件目という場合
 あ06004
というコードになります。

"発行履歴"シートのB列に下記のようにこれまで発行したコードが入力されています。
あ05001
あ06001
あ06002
い06001
え06001
あ06003
い06002

"注文書"シートに種類と発行月を入力し
発行履歴シートのコードを元に連番の最後尾を振ったコードが
B3セルに自動で表示されるようにしたいです。
【パターン1】
  A   B
1 種類   あ
2 発行月  6
3 コード  あ06004

【パターン2】
  A   B
1 種類   え
2 発行月  6
3 コード  え06002

これまではCOUNTIF関数で発行履歴シートの"あ006"の数+1で連番最後尾を作る様にしていましたが
発行履歴からコードを消す事がありCOUNTIF関数でコードの個数を求める方法ではコードが重複してしまう事に気付きました。
文字列含む前方一致で下3ケタの最後値を求め連番最後尾を求めることは可能でしょうか?
ご教示くださいますようお願い致します。

< 使用 Excel:unknown、使用 OS:unknown >


 =B1&TEXT(B2,"00")&TEXT(MAX(IF(LEFT(発行履歴!B$1:B$100,LEN(B1)+2)=B1&TEXT(B2,"00"),RIGHT(発行履歴!B$1:B$100,3)*1,""))+1,"000")
 と入力してShiftキーとCtrlキーを押しながらEnterキーで式を確定(確定後、式が{}で囲まれればOK)ではどうか?
(ねむねむ) 2019/06/04(火) 16:05

 なお、上記式では発行履歴が最大100行目まで対応している。
 もっと行がある場合は式中の2か所の$100を同じ値で大きくしてくれ。
(ねむねむ) 2019/06/04(火) 16:06

回答ありがとうございます。

早速試してみたのですが、上手くいきませんでした…
ShiftキーとCtrlキーを押しながらEnterで{}で囲まれるのは出来たのですが
計算過程を確認すると
="あ06"&TEXT(MAX({"";#VALUE!;#VALUE!;"";"";#VALUE!;"";"";"";"";・・・"";"";})+1,"000")
という感じでした。

(みそ) 2019/06/05(水) 10:12


 コードは
 種別+月2桁+連番3桁
 で間違いないだろうか?
 計算過程で
 #VALUE!
 ということは
 RIGHT(発行履歴!B$1:B$100,3)*1
 でコードの右3桁を抜き出した際にそれに数字でない文字が入っていたものと思われるが。
(ねむねむ) 2019/06/05(水) 10:17

ねむねむ様
コード履歴の方を打ち直したら上手くいきました。
ご指摘の通り数字として認識されていなかったようです。

大変助かりました。
ご支援いただきありがとうございました。
(みそ) 2019/06/05(水) 10:38


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.