営業事務のExcel便利手帳

とにかく面倒くさがりの私が、日々の業務を効率化しようと奮闘したExcel便利メモです

枝番をつけたい

 受発注業務でもなんでも、今どきほとんどが専用システムなので、勝手にユニークNo.が振られて管理されると思います。

 そしてほとんどがデータをCSVExcel形式で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.」を挿入して、この数式を入れると

f:id:SaSa_KenTa1:20210129100133p:plain

明細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

 

 もしよかったら使ってみて下さい!