• ベストアンサー

二つの条件を満たす関数

資格を縦行、成績ランクを横列から交差する場所の値を出すような関数はありませんでしょうか? 実際は、     A   B    C   D 部長 100000 80000  60000  50000  次長  80000 60000 50000 40000 課長  50000 40000 20000 10000   こんな感じのテーブルになるのですが(表は、9行4列になります。) 資格が次長でランクがBの場合、60000になるわけです。 これを関数で導きたいのです。 HLOOKUPとIF文でやろうとしたのですがIFは7つ以上は繰り返せないようで エラーになってしまいます。宜しくお願いいたします。 EXCELは2000です。

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

  • ベストアンサー
  • ta123
  • ベストアンサー率51% (95/186)
回答No.2

テーブルがA1:E9にあるとして、以下の方法で検索できると思います。(EXCEL2002で検証) =INDEX(A1:E9,MATCH("部長",A1:A9,0),MATCH("A",A1:E1,0))

noname#112583
質問者

お礼

ありがとうございます。 答えはひとつではなかったんですね。 INDEX関数、不勉強でした。 MATCH関数・・・わかってたつもりでわかってなかったようです。 NO1の方の回答とあわせ使いやすいほうを利用させていただきます。これでなんとか考課処理できそうです。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

#1 Wizard_Zeroです。 +1について。 VLookup関数では、3番目の引数「どの列を参照するか」で1を指定すると、検索列(つまり一番左の役職リスト)になってしまうので、Aランク~Dランク(B列~E列)にするには2~5にしなければなりません。今回、Match関数はB~E列を検索範囲にしているので、返される結果は1~4。ですので+1にしています。Match関数の検索範囲をA1:E1とした場合、+1は不要です。 ただ、VLookup使うより、#2さんのIndex関数の方が、検索方法の原理が分かりやすいと思います。(他の人が関数を見た場合とか) 正直、#2さんの回答見て「その手があったか!」って思いました。(*^.^*)

noname#112583
質問者

お礼

補足ありがとうございました。 123は原則禁止となってしまったので大変助かりました。

すると、全ての回答が全文表示されます。
  • ta123
  • ベストアンサー率51% (95/186)
回答No.3

テーブルがA1:E9にあるとして、以下の方法で検索できると思います。(EXCEL2002で検証) =INDEX(A1:E9,MATCH("次長",A1:A9,0),MATCH("B",A1:E1,0))

すると、全ての回答が全文表示されます。
回答No.1

Wizard_Zeroと申します。 VLookupとMatchの組み合わせでできると思います。 テーブルのアドレスを「A1:E9」、資格の役職入力欄を「A11」、ランク入力欄を「B11」と仮定します。 =VLOOKUP(A11,A1:E9, MATCH(B11,B1:E1,FALSE) + 1, FALSE) Excel2003で検証しました。 多分、こういうことだと思うのですが、はずしてたらすみません。(もっと簡単な方法があるかも...)

noname#112583
質問者

お礼

ありがとうございます。できました。 MATCH関数・・・わかってたつもりでわかってなかったようです。 実は、これまでこのファイルは、ロータス123だったんですが事情があってEXCELになりました。ロータスとEXCELではサポートする関数が違って困っていました。 ありがとうございました。 ところで”+1”とありますがなぜでしょう?

すると、全ての回答が全文表示されます。

関連するQ&A