No.5ベストアンサー
- 回答日時:
ご質問者が別の質問でお示しになった「野菜.xlsx」「果物.xlsx」「魚.xlsx」というファイルが、
仮にCドライブの「教えてgoo」というフォルダにあるとして、別の検索用ブックに「検索シート」がある場合、
検索シートのA2に「シャインマスカット」と入力したときB2に「H-3」が表示される関数は以下のようなものです。
=IFERROR(VLOOKUP(A2,'C:\教えてgoo\[野菜.xlsx]キャベツ'!$A:$B,2,FALSE),
IFERROR(VLOOKUP(A2,'C:\教えてgoo\[野菜.xlsx]にんじん'!$A:$B,2,FALSE),
IFERROR(VLOOKUP(A2,'C:\教えてgoo\[野菜.xlsx]じゃがいも'!$A:$B,2,FALSE),
IFERROR(VLOOKUP(A2,'C:\教えてgoo\[野菜.xlsx]たまねぎ'!$A:$B,2,FALSE),
IFERROR(VLOOKUP(A2,'C:\教えてgoo\[果物.xlsx]りんご'!$A:$B,2,FALSE),
IFERROR(VLOOKUP(A2,'C:\教えてgoo\[果物.xlsx]いちご'!$A:$B,2,FALSE),
IFERROR(VLOOKUP(A2,'C:\教えてgoo\[果物.xlsx]すいか'!$A:$B,2,FALSE),
IFERROR(VLOOKUP(A2,'C:\教えてgoo\[果物.xlsx]ぶどう'!$A:$B,2,FALSE),
IFERROR(VLOOKUP(A2,'C:\教えてgoo\[魚.xlsx]あじ'!$A:$B,2,FALSE),
IFERROR(VLOOKUP(A2,'C:\教えてgoo\[魚.xlsx]いわし'!$A:$B,2,FALSE),
IFERROR(VLOOKUP(A2,'C:\教えてgoo\[魚.xlsx]たい'!$A:$B,2,FALSE),
IFERROR(VLOOKUP(A2,'C:\教えてgoo\[魚.xlsx]マグロ'!$A:$B,2,FALSE),""))))))))))))
INDIRECT関数を使用するともっとすっきりしたものになるかも知れませんが、No.3さんの回答のとおり、INDIRECT関数は対象ブックを開いておかないと使えません。
このため、VLOOKUP関数を使用しました。
「野菜」「果物」「魚」以外のカテゴリーが追加された場合は、その内容を「新カテゴリー名.xlsx」というブックに作成し、Cドライブの同じフォルダに保存した上で、数式に新たに追記していくことになります。
数式の作成にはテキストエディタを活用されると良いと思います。
No.4
- 回答日時:
No2です
>非常に興味があります。具体的に教えていただけないでしょうか?
もとのご質問が抽象的なので、具体的にと言われても限界がありますが・・・
各シートが2列構成と仮定して、まとめシートは(A、B)(C、D)・・・列をセットに考えて、各シートを参照する式を設定しておきます。
単純参照だと、空白欄が「0」表示になってしまうので、空白欄は空白になるような式にしておくほうが良いでしょう。
以上でまとめシートは作成できると思います。
(各シートで項目を変更や追加したりすると、自動的にまとめに反映されるようになります)
(ブックが異なる場合は、両方開いていないと即時反映はされませんが…)
検索は、このまとめシートから検索することになりますが、「奇数列で値が一致する」ことを条件に検索し、ヒットしたセルの右隣にある値を返すようにすれば良いです。
複数条件検索かつ二次元からの検索になるので、配列計算になると思いますが、対象範囲を列全体などにしてしまう計算時間がかかってしまう可能性が高いので、計算範囲はある程度限定した式にしておくほうが良いと考えられます。
面的な表からの検索方法はいろいろあると思いますが、例えば、
AGGREGATE(15,6,(ROW(セル範囲)+COLUMN(セル範囲)*定数)/(セル範囲=検索値)/(MOD(COLUMN(セル範囲),2)=1),1)
を計算すると、ヒットした「行番号+列番号*定数」の値(=nとする)が返されます。
(定数はセル範囲に応じて、適切な値を任意に設定しておけば良いです)
上記の値に対して、MOD(n, 定数)で行番号が、INT(n/定数)で列番号が逆算できますので、これを利用して、INDEX関数で右隣を得れば良いので、
=INDEX(OFFSET(A:A,,列番号),行番号)
で、最終的に求めている値を得ることができます。
全体をひとつの式に纏めたければ、式を組合わせることで(多少長くはなりますが)可能です。
また、ヒットする値が存在しなければ、当然、結果はエラー値になります。
No.3
- 回答日時:
やろうと思えばできますが対象の全てのブックの全てのシートに対し
て数式を一個ずつ作って計算したものを最後に集約することになるか
と思います。 INDIRECTは対象ブックを開いておかないといけなくな
るので使えません。要は1つ検索するのに全シート分の数式を作って
まとめる作業が必要です。
結局のところ情報をブックやシートでやたらめったら分けた時点で数
式では何一つ上手くいかなくなります。検索対象のデータは分けない
のが鉄則です。
どうしても数式でやりたいのなら(それに意味があるかどうかは置い
といて)マクロかクエリの追加でデータを一箇所に集約してからにし
た方がいいかと思います。外部参照を数式で直接やること自体お勧め
できかねます。
この回答へのお礼
お礼日時:2020/10/27 07:43
「検索対象のデータは分けないのが鉄則」なのはわかります。
検索対象のデータが増えたり減ったり変更したりで把握しにくいので分けていたのですが、、、、、、
やっぱりひとつにまとめないとダメですよね。
No.2
- 回答日時:
こんばんは
完全一致検索でよいのですよね?
INDEX MATCHのみでは難しいと思いますが、シート数が大量でなければ、不可能ではないでしょう。
ひとつのシートで検索して、存在すれば値を、しなければ空白を返す関数を作成します。
後は、それをシートの数だけ連結してしまえば可能と思います。
ブックに仕組みを作っておいても良ければ、直接の検索の式をもっと簡単な式にすることも可能と思います。
例えば、各ブック内のシートをひとつのシートにまとめるように関数式で設定しておきます。
次に、同様にして各ブックのまとめシートをひとつのシートにまとめます。
この「全体まとめシート」から検索するようにすれば、直接の検索の関数式は、ご想像のような
> INDEX MATCH を使用して検索できますか?
という検索に近いものでも可能になると思います。
まとめる際に、全てを1列に並べるのではなく、(項目数可変で並べるのは面倒なので)平面的な表としてまとめた場合は、違う関数を利用する方が検索はしやすくなると思います。
こちらの方法なら、各シート(2列分)をそのまま横に並べる形で表にまとめればよくなるので、「まとめ」の処理の方は簡単になると考えられます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Excel(エクセル) セルの値と同じ名前のシートのセルの結合を解除する方法を教えてください 3 2022/10/03 10:23
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Excel(エクセル) エクセルでファイル保存時に複数シートのオートフィルタを全て解除したい 1 2023/05/10 13:23
- Excel(エクセル) セルの値からファイルを複数作りたい 2 2022/10/06 12:42
- Excel(エクセル) エクセルでこのようなことはできますか? 3 2022/07/10 19:57
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Excel(エクセル) エクセルで列の行の重複の検索方法を教えてください。 8 2022/10/11 14:51
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで条件付き書式で空白セル...
-
首吊りどこ締めるの
-
エクセル指定した範囲からラン...
-
リンク先のファイルを開かなく...
-
EXCELで式からグラフを描くには?
-
VLOOKUP関数を使用時、検索する...
-
エクセルのラベルの値(文字列...
-
小数点以下を繰り上げたものを...
-
一番多く表示のある値(文字列...
-
エクセルで数式の答えを数値と...
-
彼女のことが好きすぎて彼女の...
-
ワードのページ番号をもっと下...
-
エクセルで空白セルを含む列の...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
EXCELの条件付き書式で数式を空...
-
Excelで列の上4桁のみ抽出させ...
-
【エクセル】0以外が入力され...
-
Excel 0目標に対して数字があ...
-
WORDで複数語句を検索するには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
EXCELで式からグラフを描くには?
-
勃起する時って痛いんですか? ...
-
2つの数値のうち、数値が小さい...
-
エクセルで数式の答えを数値と...
-
エクセル指定した範囲からラン...
-
これって喉仏ですか? 私は女性...
-
精液の落とし方を教えてください
-
EXCELで条件付き書式で空白セル...
-
リンク先のファイルを開かなく...
-
検便についてです。 便は取れた...
-
小数点以下を繰り上げたものを...
-
エクセルのラベルの値(文字列...
-
風俗店へ行く前のご飯
-
イタリアから帰国する際、肉製...
-
一番多く表示のある値(文字列...
-
ある範囲のセルから任意の値を...
-
化合物のモル吸光係数データベ...
おすすめ情報
まとめる際に、全てを1列に並べるのではなく、(項目数可変で並べるのは面倒なので)平面的な表としてまとめた場合は、違う関数を利用する方が検索はしやすくなると思います。
こちらの方法なら、各シート(2列分)をそのまま横に並べる形で表にまとめればよくなるので、「まとめ」の処理の方は簡単になると考えられます。
非常に興味があります。具体的に教えていただけないでしょうか?