枝番をつけたい
受発注業務でもなんでも、今どきほとんどが専用システムなので、勝手にユニークNo.が振られて管理されると思います。
そしてほとんどがデータをCSVやExcel形式でDL可能だと思います。
ただ、ときどき、枝番がついていないことがあります。たとえば受注番号や、客先注文番号。
同じ番号で複数明細の注文をいただいた場合、伝票1件で1番号の処理のため、例えば下記のようなデータになります。
受注No. | 商品コード | 商品名 | 数量 | 単価 | 金額 |
123456 | N001 | ノートPC | 10 | 50,000 | 500,000 |
123456 | D002 | デスクトップPC | 10 | 40,000 | 400,000 |
いや、今どきのシステムはほとんどの場合自動的に枝番付与されると思うんですが、もしついていなかった場合に、自分で振る方法です。
=COUNTIF(INDIRECT("A2:A"&ROW()),A2)
数式はこれ。
受注No.の隣(B列)に項目「明細No.」を挿入して、この数式を入れると
こうなります。
枝番として表示するなら↓
=A2&"-"&COUNTIF(INDIRECT("A2:A"&ROW()),A2)
受注No. | 明細No. | 商品コード | 商品名 | 数量 | 単価 | 金額 |
123456 | 123456-1 | N001 | ノートPC | 10 | 50,000 | 500,000 |
123456 | 123456-2 | D002 | デスクトップPC | 10 | 40,000 | 400,000 |
分解していくと、「COUNTIF」でA列(受注No.)に、その行のNo.と同じものがいくつあるかを数えます。
「=COUNTIF(A:A,A2)」
これだと2つあるので「2」と表示されてしまいます。
なので、範囲をA2から、その行まで(2行目であればA2まで)としたいです。
そこで
「INDIRECT(参照文字列,[参照形式])」を使います。
指定したい範囲はA2からAの○行目まで、なので、「A2:A」は固定です。
行番号を「ROW()」で指定します。
※「A2:A」は文字列なので、表を移動させた際、ずれてしまうので注意が必要です。
(参照文字列を表外に用意して、そこを参照させる形にすれば、移動した場合に修正が1箇所で済みます)
この数式なら、データがいくつあっても枝番が簡単に付けられます。
受注No. | 明細No. | 商品コード | 商品名 | 数量 | 単価 | 金額 |
123456 | 123456-1 | N001 | ノートPC | 10 | 50,000 | 500,000 |
123456 | 123456-2 | D002 | デスクトップPC | 10 | 40,000 | 400,000 |
234567 | 234567-1 | N001 | ノートPC | 8 | 50,000 | 400,000 |
345678 | 345678-1 | N001 | ノートPC | 4 | 50,000 | 200,000 |
345678 | 345678-2 | M003 | モニタ | 10 | 20,000 | 200,000 |
345678 | 345678-3 | D002 | デスクトップPC | 4 | 40,000 | 160,000 |
456789 | 456789-1 | N001 | ノートPC | 3 | 50,000 | 150,000 |
567890 | 567890-1 | N001 | ノートPC | 1 | 50,000 | 50,000 |
567890 | 567890-2 | D002 | デスクトップPC | 1 | 40,000 | 40,000 |
567890 | 567890-3 | M003 | モニタ | 1 | 20,000 | 20,000 |
567890 | 567890-4 | M003 | モニタ | 1 | 20,000 | 20,000 |
678901 | 678901-1 | N001 | ノートPC | 5 | 50,000 | 250,000 |
もしよかったら使ってみて下さい!