この人頭いいなと思ったエピソード

お世話になっております。
あるコード番号を検索して、別のBOOKへ該当のへコード番号へ値を返す方法を行っております。BOOK1のD列に以下のような数式を使っております。

  =INDEX(BOOK2!$I$2:$I$15,MATCH(B2,BOOK2!$F$2:$F$15,0),1)

質問ですが、
1)INDEX関数の=INDEX(配列、行番号、列番号)の列番号が何故1になるのかが分かりません。2や3,5等になることがあるのでしょうか。例を教えて頂けると有難いです。
2)何故このような数式になるのか詳しく教えて頂けると嬉しいです。
3)他にもっと簡単な数式があれば、教えて頂けるととても嬉しいです。
 ※画像は左側がBOOK1、右側がBOOK2です。

ご返信をお待ちしております。
初心者で大変申し訳ございませんが、どうぞ宜しくお願い致します。

「INDEX関数とMATCH関数を使用し値」の質問画像

A 回答 (2件)

こんにちは



>1)列番号が何故1になるのかが分かりません。
セル範囲(=$I$2:$I$15)の1列目を参照するからです。
対象が1列(あるいは1行)だけであれば、自明なので「1」の数値を省略することも可能です。

>2)何故このような数式になるのか詳しく教えて頂けると嬉しいです
その出典になったところに解説があるでしょうから、詳しくはそちらを参照下さい。
「INDEX(配列、行番号、列番号」の列番号(=1)は前出の通りで、行番号はMatch関数を利用して表から検索しています。
(出典が無い場合は、Match関数に関してググってください)

>3)他にもっと簡単な数式があれば、教えて頂けるととても嬉しいです
ご提示のようなケースであれば、通常は
 =VLOOKUP(B2,BOOK2!F$2:I$15,4,0)
とするところでしょう。

※ ご質問文の説明には「別のBOOKへ該当のへコード番号へ値を返す~」とありますが、ご提示の式は別ブックを参照する式にはなっていません。
同一ブック内の別シートを参照する式です。
ですので回答の式もそのようにしてあり、別ブックを参照するような意味にはなっていませんので、誤解のなきように。
    • good
    • 0
この回答へのお礼

ご回答を頂きまして有難うございました。

1)ですが、セル範囲に対してとのこと承知致しました。他の数式でもよくありますのでお教え頂きよく分かりました。また、1列(1行)の場合は「1」の数値は省いても良いのですね…!
2)についても有難うございます。数式が混合していると理解し辛いのですが、調べてみます!
3)について、数式のご提示を頂きまして本当に有難うございます…! 早速使わせて頂きます!
※申し訳ございません。確かに別ブックですと、このような数式にはならないです…。書き誤りました…。

ご親切を頂きまして、心より感謝申し上げます…! また何かありましたら、是非宜しくお願い致します。お時間を頂きまして申し訳ございませんでした。この度は本当に有難うございました。

お礼日時:2022/04/20 20:12

BOOK2内にコードの重複がないなら私ならSUMIFを使いたいところですが、I列が文字列っぽいのでそうなると使えないですね。


実際はどうなのでしょうか?
    • good
    • 0
この回答へのお礼

メッセージを頂きまして本当に有難うございました。I列にはIF関数が入っています。初心者で申し訳ございません…。数式を勉強中ですが、なかなか応用が利かず、これからもお世話になると思います。この度はお時間を頂きまして有難うございました…! また何かありましたら、どうぞ宜しくお願い致します。

お礼日時:2022/04/20 20:20

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


おすすめ情報