プロが教えるわが家の防犯対策術!

エクセルif関数で、複数のシートから情報を集約する方法

if関数が最適なのかもわからないのですが、
以下の情報での情報集約方法を探しています。

複数シート(フォーマットは全て同じ。シート名は1.2.3.4.5~)

シートのA列に店舗番号がはいっています。
例 A1→100,A2→101,A3→102

シート1のA列に100が入力されている場合、
まとめシートに、シート1のC1が反映される。シート5のA列に150が入力されていた場合、まとめシートにシート5の該当セル(C151)が反映される。

上記のような数式を作りたいです。
どなたかご教授頂けますでしょうか?

宜しくお願いいたします。

A 回答 (2件)

100とか150と言うのが店舗番号だろうか。


ならばシート名があるならそれを使って参照先を指定できる。
文字列から参照先を指定する場合、INDIRECT関数を使う。
すると、
=IF(シート1!A1=100,シート1!C1,"")
が、
=IF(INDIRECT(A1&"!A1")=B1,INDIRECT(A1&"!C1"),"")
のようになり、
=IF(ISERROR(MATCH(100,シート1!A:A,0)),"",シート1!C1)
が、
=IF(ISERROR(MATCH(B1,INDIRECT(A1&"!&A:A"),0)),"",INDIRECT(A1&"!C1"))
のようになる。

この場合、C1セルに相当する部分がどう紐付けされているのか不明なので、
そこは自身で「工夫してくれ」。
※条件(情報)が明らかに少なく、推測では答えられない。


もう一つアドバイス。
自身の手に負えない物件は早めにできないと申告すべき。
    • good
    • 0
この回答へのお礼

ありがとうございます!!
INDIRECTとVlookupの関数でなんとか無事にできました
情報も伝えきれていない中、アドバイス頂きありがとうございました!!

お礼日時:2015/10/21 21:38

なんか違う気がするなあ。


「まとめシート」のどこかに参照するシートのデータを反映させる値(この場合100とか150)を入力するセルを作って、
データを反映させるべきではないだろうか。
・・・
それは置いといて、
シート1のA列には100以外の値が入力されていても、A列のどこかに100が入力されていたら反映させるということで良いのだろうか。

とりあえず作り方

まずはA1セルだけを参照して値を反映させる式を考える。
=IF(シート1!A1=100,シート1!C1,"")
=IF(シート5!A1=150,シート5!C151,"")

次にA1セルだけでなくA列全体を検索して該当する値があるかを判断する事を考える。
IF関数で総当たり…は現実的ではない。
MATCH関数で一致するセルがあるかを判断すれば良い。
=MATCH(100,A:A,0)
でエラーが返ってきたら該当する値(100)はない。エラーにならなかったら該当する値がある。
なのでISERROR関数でエラーの有無を検査してその結果を上で示した式に組み込む。

=IF(ISERROR(MATCH(100,シート1!A:A,0)),"",シート1!C1)
=IF(ISERROR(MATCH(150,シート5!A:A,0)),"",シート5!C151)
こんな感じだろうか。(エラー…すなわち該当しなければ空白を表示、エラーにならなかったら値を参照)

ほんとに【とりあえず】答えてみたが、これで抱えている問題がすべて解決すれば良いが…。
あとは工夫してみてください。
    • good
    • 0
この回答へのお礼

早速ありがとうございます!
冒頭にご指摘いただいた部分…。
説明不足ですみません。

反映される値をまとめシートに入れて数式を作る場合の方法はどうなりますでしょうか。。。

まとめシートの中には、
シート名、店舗名共に記載があります。
自分が作ったエクセルではなく、
急遽if関数で該当する値を飛ばす式をまとめシートのC列に作れと言われたもので…。チンプンカンプンでして。。

まとめシートは以下の感じです。

シート名→Aセル
店舗番号→Bセル
数式をいれる→Cセル(ここの部分が、複数シートから該当シートを選び、その中の店舗番号に紐付いた値を反映させる。)

説明も下手ですいません。
もしなんとなく私が意図してることがお分かりでしたらご教示頂けますと幸いです。

お礼日時:2015/10/19 23:20

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

このQ&Aを見た人はこんなQ&Aも見ています


人気Q&Aランキング