• ベストアンサー

エクセル 条件に当てはまるセルの値を返す方法

こんにちは、よろしくお願いします。   D   E   F   G   H   I ・・・・・N    O  1 北海道 東京 愛知 大阪 京都  沖縄  2  1   2   3   4   5   6        愛知  3  2   3   6   5   1   4        北海道    4  4   2   3   1   5   6        東京   5  2   3   6   5   1   4        京都  6  1   2   3   4   5   6        北海道 となっている表があります。(本来はMまで地名が入っています) この時にNに該当の数字を入れたいのです。 具体的にはN2に3、N3に2、N4に2となっていきます。 =IF(O2=$D$1,D2,IF(O2=$E$1,E2,IF(O2=$F$1,F2,IF(O2=$G$1,G2, IF(O2=$H$1,H2,IF(O2=$I$1,I2,IF(O2=$J$1,J2,IF(O2=$K$1,K2,(O2=$L$1,L2))))))))) とやってみたのですが、やたら長くスマートではない上に、これ以降が エラーになって入力できなくなってしまいました。 良い方法を知っていればご教授下さい。 お願いします。 mac OS10.5 excel2004を使用しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

横(1行目)と縦(O列)の地名が同じ個所の値でいいなら このような式で出来ます。 N2=HLOOKUP(O2,$D$1:$M$48,ROW(),FALSE) または N2=INDEX($D$2:$M$48,ROW()-1,MATCH($O2,$D$2:$M$2,0)) この式を下方にコピー

hanauta00
質問者

お礼

ありがとうございます! この式でばっちりできました。これで煩雑な作業から 抜け出せます。 ありがとうございました。

その他の回答 (2)

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.3

セルN2に↓を入力して、↓にコピー&ペーストでいかがでしょうか? =INDEX(E2:M2,MATCH(O2,$E$1:$M$1,0))

参考URL:
http://www2.odn.ne.jp/excel/waza/function.html
hanauta00
質問者

お礼

お答えいただきありがとうございます。 この関数でもばっちりできました。 今はどうしてこの関数で表示できたのかを考えています。 どうもありがとうございました。助かりました。

  • qualheart
  • ベストアンサー率41% (1451/3486)
回答No.2

N2には =SUMIF(D1:M1,O1,D2:M2) N3には =SUMIF(D1:M1,O2,D3:M3) で良いと思います。 ただこれだと、各セルにコピーで数式を入れようとすると、「D1:M1」を参照するはずがずれていってしまうので、「D1:M1」には「地名」などの名前を定義して =SUMIF(地名,O1,D2:M2) のように入力するのがよいでしょう。 あとはN2セルをコピーして下にコピーしていけばOKです。

hanauta00
質問者

補足

ありがとうございました。 私の勉強不足で「「D1:M1」には「地名」などの名前を定義」 というのを、どうすれば良いか分かりませんでした。 調べてやってみようと思います。 ありがとうございました。

関連するQ&A