🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

解決済

2回答

6385閲覧

【Excel】INDEX関数&MATCH関数での複数条件での取得ができない

Mr.sijimi

総合スコア21

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2020/11/30 01:13

編集2020/11/30 01:44

Excelで下記のような表(テーブル)があります。

TableA
|行||A|B|C|D|E|F|G|
|--:|--|:--|:--|:--|:--|:--|:--|
|1||1|2|3|a|b|c|d|
|2||11|22|33|xx|vv|zz|yy|
|3||||||||...etc|

TableB
|行||A|B|C|H|I|J|K|
|--:|--|--:--|:--|:--|:--|:--|:--|
|1||1|2|3|aa|bb|cc|dd|
|2||3|2|1|dd|cc|bb|dd|
|3||5|2|-1|aa|bb|cc|dd|
|4||11|22|33|dd|cc|bb|dd|
|5||||||||...etc|

前提

★tableAの項目A・項目B・項目CとTableBの項目A・項目B・項目Cがキーとなる
★する際の検索値は取得項目より左側にあるとは限らないため、INDEX関数&MATCH関数で取得する
★書式設定は変更不可

目的

今回取得したい項目がTableAのキーと合致しているTableBのレコードの項目Hの値となります。

実行したこと

下記のような数式で値の取得を試みました。

=INDEX(TableB!H1:TableB!H5,MATCH(TableA!A1&TableA!B1&TableA!C1,TableB!A1:TableB!A5&TableB!B1:TableB!B5&TableB!C1:TableB!C5,0)) //Excel上ではTableAとTableBは別シート

しかし、「#N/A」のエラーで望む結果とはならず。
「数式の検証」機能でエラー箇所を見てみるとMATCH関数の中身でエラーが起こっていました。
「INDEX関数 MATCH関数 複数条件」のキーワードで出てくる記事はどこも上記での方法で取得できているようです。
なぜ、エラーが起こっているのかわからず解決できずにいます。
わかる方教えてください。

###スペック情報
OS:Windows10 Pro
Softwear: Microsoft Office Professional Plus 2016 [Excel]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

配列になっていないと思うので、数式を編集状態にして、Ctrl+Shift+Enterで確定してください。

投稿2020/11/30 01:56

radames1000

総合スコア1925

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr.sijimi

2020/11/30 02:14 編集

ありがとうございます。 今試してみたところ、取得ができました。 ちなみに、MATCH関数の検索範囲が絶対セル参照の場合だとエラーが出てしまいます。 MATCH関数で複数条件指定する場合、検索範囲は相対セル参照のみということになるのでしょうか?
radames1000

2020/11/30 02:21

絶対参照も使用可能です。 数式を編集した後は常にCtrl+Shiift+Enterが必要になりますがされていますか? そうすると数式の前後に{}がつくと思いますのでそれで判断してください。
Mr.sijimi

2020/11/30 02:25

ありがとうございます。 絶対セル参照でも取得できました。
guest

0

=INDEX (TableB!H1:TableB!H5, MATCH(TableA!A1 &TableA!B1 &TableA!C1, TableB!A1:TableB!A5 &TableB!B1:TableB!B5 &TableB!B1:TableB!B5 ,0))

=INDEX (TableB!H1:TableB!H5, MATCH(TableA!A1 &TableA!B1 &TableA!C1, TableB!A1:TableB!A5 &TableB!B1:TableB!B5 &TableB!C1:TableB!C5 ,0))

に修正して実行して頂けますでしょうか。
matchの最終行のセルがCではなくBを指定していましたので、そこを修正しております。

見やすさを考慮し、改行しておりますが、
エクセルには改行を省いて記載して下さい。

投稿2020/11/30 01:40

編集2020/11/30 01:42
K_Y_M

総合スコア100

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr.sijimi

2020/11/30 01:44

失礼いたしました。 Excel上ではご指摘の箇所は正しく入力されていました。 指定箇所のコードはすぐに修正いたします。
K_Y_M

2020/11/30 01:47

一度以下の式を実行頂き、結果が全て”TRUE”となるかご確認頂けますでしょうか。 =TableA!A1=TableB!A1 =TableA!B1=TableB!B1 =TableA!C1=TableB!C1
Mr.sijimi

2020/11/30 01:51 編集

全て"TRUE"となっておりました
Mr.sijimi

2020/11/30 02:20

ありがとうございます。 ご提示いただいた内容にて取得はできました。 ちなみに、radames1000様へのコメントでも書かせていただいたのですが MATCH関数の検索範囲で相対セル参照ではなく、絶対セル参照にするとエラーになってしまうのですが、指定値は相対セル参照のみなということなのでしょうか?
K_Y_M

2020/11/30 02:26

絶対参照も指定可能です。 radames1000様が記載されている通り、編集後もCtrl+Shiift+Enterが必要となります。 それでも解決されない場合は、参照の値をつける場所が間違っている等が考えられます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問