- ベストアンサー
《急》Excelで数値の抽出方法を教えてください
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>B列に対するDの数値が対応できていないみたいです. 申し訳御座いません、G1セルに入力する数式は、 =IF($E1="","",VLOOKUP($E1,$A:$D,4,FALSE)) ではなく、 =IF($E1="","",VLOOKUP($E1,$B:$D,3,FALSE)) でした。 この数式は、 E1セルが空欄の場合には、何も表示せず、 E1セルが空欄ではない場合には、 $B:$Dの範囲内で最も左にある列(即ちB列)の中で、E1セルと同じ値を持つセルを探し出し、そのセルと同じ行にある、「$B:$Dの範囲内で左から3番目にある列(即ちD列)」のセルの値を表示する、 という働きをする関数です。 因みに、E1セルに入力した、 =IF(AND(INDEX($A:$A,ROW())<>"",COUNTIF($B:$B,INDEX($A:$A,ROW()))),INDEX($A:$A,ROW()),"") という関数は、「その関数が入力されている行と同じ行にある」A列のセルが空欄では無い場合で、 且つ、「その関数が入力されている行と同じ行にある」A列のセルの値、と同じ値を持つセルがB列の中に存在している場合には、 、「その関数が入力されている行と同じ行にある」A列のセルの値を表示し、 それ以外の場合には、何も表示しない、 という働きをする関数です。 尚、 INDEX($A:$A,ROW()) の部分は、「その関数が入力されている行と同じ行にある」A列のセルの値を求める関数で、E1セルに入力する場合には、$A1と入力するのと同じ働きをしますが、$A1と入力した場合には、セルの削除や切取り、挿入等の操作で、セルの位置関係がずれると、関数が正常に作動しなくなるのに対して、INDEX($A:$A,ROW())と入力した場合には、セルの位置が上下にずれても、関係なく正常に動作致します。
その他の回答 (2)
- okormazd
- ベストアンサー率50% (1224/2412)
グラフを書くためなら、x軸を1つの列にまとめなくても、そのまま元のデータ列を使って書くことができるが、それではダメなのか。 グラフウィザードで「散布図」を選んで、「系列」で、 「系列」の「追加」で、1つの系列(系列1)のxの値をA列に、yの値をC列にする。 また、「系列」の「追加」で、2つめの系列(系列2)のxの値をB列に、yの値をD列にする。 これだけのことですが、x軸を項目軸にしたいのでしょうか。データを見ると散布図でいいように見えるが。
お礼
グラフを書くためだけではなく,実際は得られた結果(C、D)よりある計算を行わなければならないため、同じx軸で比較をしなければいけないのです。 ご回答ありがとうございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
まず、E1セルに次の数式を入力して下さい。 =IF(AND(INDEX($A:$A,ROW())<>"",COUNTIF($B:$B,INDEX($A:$A,ROW()))),INDEX($A:$A,ROW()),"") 次に、F1セルに次の数式を入力して下さい。 =IF($E1="","",INDEX($C:$C,ROW())) 次に、G1セルに次の数式を入力して下さい。 =IF($E1="","",VLOOKUP($E1,$A:$D,4,FALSE)) そして、E1~G1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。 以上です。
お礼
早速のご回答ありがとうございます. ただいま試してみましたが、A列に対するCの数値は対応してるみたいですが、 B列に対するDの数値が対応できていないみたいです. 中身を調べてみても、イマイチわかっていません。 もしよろしければ、ご回答いただけると非常に助かります。 よろしくお願いいたします。
お礼
再度、ご回答ありがとうございました。 実用の結果、正しいデータ処理が行うことができました。感謝いたします。 また、何かありましたら宜しくお願いいたします。