プロが教える店舗&オフィスのセキュリティ対策術

商品ごとにコードを付してデータシート(Sheet1)から仕入した商品を記録するシート(Sheet2)に転記するため、E7=INDEX(Sheet1!$C$3:$D$100,MATCH(D7,Sheet1!C3:C100,FALSE),2) と入力し、以降にコピーして、D7以降にコードを入力したのですが、エラーがでて上手くいきません。原因が解りません。教えて下さい。
なお図は添付していませんが、
Sheet1には、C3~C100まで101~連番で数字のコード、D3~D100までC列の数字ごとの商品名が入ってます。
Sheet2は、D7~D30セルにSheet1のコードを入力するとE7~E30にそれぞれ商品名が表示されようにした。

質問者からの補足コメント

  • ご回答有難うございます。ご指導いただいた =IF(D7="","",VLOOKUP(D7,Sheet1!C$3:D$100,2,0)) を使用しましたが、質問と同様に添付画面のように#N/Aのエラーになります。「fx」で「値が偽の場合」が#N/Aとなっていますが解決できませんでした。なお、Sheet1のデータはBOOK内で他のシートにも =IFERROR(VLOOKUP(B16,商品一覧!$C$3:$D1669,2,FALSE),"")を使っていますが、問題ありません。また、式には問題ないので、書式設定を見直し標準に設定しましたが、#N/Aの表示です。エラーの原因がどこにあるのかわかりません。

    「別シートから一致する文字列を抽出したい。」の補足画像1
      補足日時:2021/09/11 09:55
  • 追加画像です。

    「別シートから一致する文字列を抽出したい。」の補足画像2
      補足日時:2021/09/11 09:56

A 回答 (6件)

こんばんは



文章の説明だけなので、正しく解釈できているのかわかりませんけれど・・・

E7セルに
>=INDEX(Sheet1!$C$3:$D$100,MATCH(D7,Sheet1!C3:C100,FALSE),2)
で正しい(=思った通りの)結果が得られていて、下方にフィルコピーしたいのかと解釈しました。

フィルコピーするためには
=INDEX(Sheet1!$C$3:$D$100,MATCH(D7,Sheet1!$C$3:$C$100,FALSE),2)
としておけば良いものと思われます。

とは言っても、わざわざMATCH、INDEXの複雑な形式にしなくても
=VLOOKUP(D7,Sheet1!C$3:D$100,2,0)
でも十分ではないかと思いますが・・・

上記だと、D列が未入力の時はエラーになる可能性があるので、それを防止したければ、E7セルに
=IF(D7="","",VLOOKUP(D7,Sheet1!C$3:D$100,2,0))
としておけば、未入力の場合には空白となります。
(入力値が検索できない場合はエラー表示になります)
    • good
    • 0
この回答へのお礼

有難うございます。VLOOKUPで作成します。IFを使用して入力しましたが、補足コメントのようになります。別に作成したBOOKのテストシートでは正常なのですが........。試行錯誤でやってますが未だ判りません。

お礼日時:2021/09/11 10:18

match分の中のC3:C100はC$3:C$100と$マークを入れないと下にズレていくので、マッチしないこともあると思います。

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

有難うございます。$を入れました。

お礼日時:2021/09/11 10:09

No.1さんの回答にもありますが、VLOOKUPでいいんじゃないでしょうか?



どうしてもINDEXとMATCHを使うなら

E7=INDEX(Sheet1!$D$3:$D$100,MATCH(D7,Sheet1!$C$3:$C$100,0))

ではどうでしょう。
それでもエラーが出るなら、何のエラーなのかを書いて下さい。
(本来は最初から書いて欲しい)
    • good
    • 0
この回答へのお礼

有難うございます。ご指導の式を入れたのですが、#N/Aのエラー表示になりました。補足コメントに書いたものと同じになります。

お礼日時:2021/09/11 10:08

#N/Aエラーなら、検索値のデータ型が違うことが原因かと思われます。


式の問題ではないですね。最初からエラーが何かを書いて頂いていれば原因特定が早くできたのですが。
また、書式設定を変えるだけでは既に入力されたデータ型を変えることはできません。

とりあえず、商品一覧シートのC列を選択して

データタブ→区切り位置→完了

としてみてください。
それでエラーが解消されなければ今のシートのD列も同様にしてください。
    • good
    • 0
この回答へのお礼

有難うございました。NO6で解決しました。データタブ→区切り位置→完了を
試行してみようと思います。

お礼日時:2021/09/11 13:25

シート2の101は文字列として入ってますか。

数値に直してください。
    • good
    • 0
この回答へのお礼

解決しました

検索先のデータが文字列でした。有難うございました。

お礼日時:2021/09/11 13:26

No1です



>別に作成したBOOKのテストシートでは正常なのですが~
私がご質問の文章を解釈して想定した内容と、そのテストシートは(多分)内容的に一致していると思われます。

>添付画面のように#N/Aのエラーになります。
そちらのシートは想定と異なる内容になっているものと想像されます。
シートの設定などは画像からは読み取れませんので、どこが異なるのかは不明ですが。

#N/Aエラーは(No1にも書きましたが)、検索値がヒットしない場合のエラーの可能性が高いです。
完全一致検索なので、(他の方もおっしゃっていますが)一番ありそうなのは、見た目には同じでも値の内容が異なっている可能性でしょうか。

試しに検索値(ご提示の画像の1枚目の、例えばD7セル)をコピーして、商品一覧シートのC3セルへペーストしてみるとヒットしたりしませんか?
(画像からは確認できませんけれど、シート名はちゃんと「商品一覧」になっていますよね?)
    • good
    • 0
この回答へのお礼

解決しました

ご指導のとおり、D7セルをC3セルにペーストしたらヒットしました。どうも、データシートのコード番号が文字列に設定されていました。有難うございました。

お礼日時:2021/09/11 13:10

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