重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【終了しました】教えて!gooアプリ版

excelのデータ紐づけについて教えていただけますでしょうか。

画像の表1のC列に、表2のF列(区分)のコードを紐づけたいですが、
やり方がわからず、困っています。

表2のE列の意味は、表1の商品コード(5桁)が、
「0」から始まる商品は、区分が「10」というふうな決まりです。

Excelは2016年度版を利用しています。
どうぞよろしくお願いします。

「Excelのデータ紐づけについて」の質問画像

A 回答 (6件)

表2は必要なのですか?


例では、商品コードが
0から始まる・・・区分10
2から始まる・・・区分20
3から始まる・・・区分30
・・・
なので(商品コードは文字列になっていますので)
セルC3に
=IF(LEFT(B3,1)="0",10,LEFT(B3,1)*10)
下へコピーではだめなのですかね。
    • good
    • 0
この回答へのお礼

うまくいきました。教えていただきありがとうございました。

お礼日時:2020/12/15 06:31

No.2さんのご指摘どおり、添付画像の例で、C3セルに記述すへき最も簡単な数式は



=VLOOKUP(LEFT($B3,1)&"-",$E:$F,2,0)

です。

これを下方向へオートフィル等でコピーすればOKです。

ただ、これもNo.2さんが指摘されていますが、この紐付けに意味があるかは甚だ疑問です。この「区分」が何を区分するものか不明ですが、ご質問者によると

>表1の商品コード(5桁)が、「0」から始まる商品は、
>区分が「10」というふうな決まりです。

という説明であり、商品コードによって区分が決まる仕組みとのことなので、例えば表2のF3セルを、「00」にすれば「区分」は商品コードの左一桁と何ら違いがいものになります。
この意味から「区分」が仕入先や販売先等、顧客との関係や会計処理の違い等で自社の自由にならないものでない限り、明らかにコード体系が「不自然」です。

さらに言えば、既にNo.2さんが述べられたとおり、「商品コード左一桁0→10」という「読替えルール」があるなら、「商品コードを保持している」以上「区分」を「保持する理由がない」ということになります。つまり、そもそも「区分」は不要では?という疑問が湧きます。
自社の自由にならないものである場合は別として、保持するならもっと異なる情報を保持すべきと言う観点からも、コード体系の見直しは必要かも知れません。
    • good
    • 0
この回答へのお礼

扱いにくいコード体系となっていますので、
今後は変更を検討してみます。
ありがとうございました。

お礼日時:2020/12/15 06:32

=VLOOKUP(LEFT(B3,1),$E$3:$F$10,2)



1つ本気で商品コードを作るなら、初めに文字を1文字入れるべき。
例えば、商品のSを頭につけるとかね。
そうじゃないと、文字列が数字に崩れた時に使いづらくなるからね。
S-1234657498 とか、S123456789
「Excelのデータ紐づけについて」の回答画像4
    • good
    • 0
この回答へのお礼

コードの変更の際にはそのようにいたします。
ありがとうございました。

お礼日時:2020/12/15 06:32

この表2ですが、1~は、どうするのかな?

    • good
    • 0

こんにちは



E列の値がどう入力されているのかわかりませんが、B列の一文字目(LEFT関数)& ~ で、表2からVLOOKUPで参照すればできるでしょう。

とは言え、何だか無駄な紐付けのように感じられますけれど・・・
商品コードの一文字目が区分を意味しているのなら(区分と称するものも「コード」なのでしょうから)、そのままでよいはず。
それで都合が悪いのなら、全体のコード体系を見直した方が良さそう。
    • good
    • 0
この回答へのお礼

他の方からのご指摘のように、コード自体を見直します。
ありがとうございました。

お礼日時:2020/12/15 06:33

IF関数をネストすればいいじゃん

    • good
    • 0
この回答へのお礼

教えていただき、ありがとうございました。

お礼日時:2020/12/15 06:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!