- ベストアンサー
エクセル 該当する範囲の名称を返すには?
業務上、以下の処理をエクセル上でしないといけません。 ・以下のような表がある。とあるセルに値を打つと、 範囲に該当するレンジ名を返す レンジ名 下限 上限 (3) 200,000 300,000 (2) 150,000 200,000 (1) 100,000 150,000 例として、”175,000”とA1に打てば、B1に”(2)”を 返す、という意味合いです。 プログラム書く能力はありませんので、どなたかお分かりに なられる方、ご指導よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
次の数式は如何でしょうか。 表はシート1のA1:C4範囲とし、シート2で抽出します。 上限・下限値が重複しているので下限値超、上限値以下としています。 B1に=INDEX(Sheet1!A:A,SUMPRODUCT((A1>Sheet1!$B$2:$B$4)*(A1<=Sheet1!$C$2:$C$4)*ROW(Sheet1!$A$2:$A$4)))
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
こんななの、事務で使う場合では有名な VLOOKUP関数のTRUE型で簡単に出来るよう見える。 こんな関数も知らないで、沢山の関数ナリの使い方のポケットを増さないで、仕事をエクセルで処理するというのは??。 ーー 例データ 検索表を例えばF1:G5に 0 A 150000 B 200000 C 300000 D 1000000 のように作る A列に数が入るとして、該当コードをB列対応行に出すには 式 B1に =VLOOKUP(A1,$F$1:$G$5,2,TRUE) 下方向に式を複写する。 結果 A列 B列( 20000 A 0 A 10 A 149999 A 150000 B 199999 B 200000 C 299999 C 300000 D 999999 D 1200000 D 空白のA列に式を複写するとAになるがこれを防ぐのは B1に=IF(A1="","",VLOOKUP(A1,$F$1:$G$5,2,TRUE)) という式に変えると良い。
お礼
回答ありがとうございました。 複雑な式に頼らずとも対応できるということで、 勉強になりました。
- koko88okok
- ベストアンサー率58% (3839/6543)
IF関数で場合別けするなら、次のような数式でも可能です。 なお、1000,000未満と300,0000を超えた場合は「範囲外」としました。 =IF(AND(A1<300000,A1>=200000),"(3)",IF(AND(A1<200000,A1>=150000),"(2)",IF(AND(A1<150000,A1>=100000),"(1)","範囲外")))
お礼
これなら分かります。 ありがとうございました。 実は、表が90行ほどあるため、IF文直接入力では きついなと思って質問した次第でした。 すみません。そこまで書かなければいけなかった ですね。。
- nobu555
- ベストアンサー率45% (158/345)
下記数式で如何でしょう。 表はセルD1:F4にあるとして レンジ名 下限 上限 (1) 100,000 150,000 (2) 150,000 200,000 (3) 200,000 300,000 とし、下限を以上、上限を未満とすると =IF(OR(A1<100000,A1>=300000),"範囲外",OFFSET(D1,MATCH(FLOOR(A1,50000),E2:E4),0)) 表に無いレンジは、範囲外の表示にしました。
お礼
これも出来ました! でも、考え方がよく分かりません・・・ OFFSET関数、FLOOR関数が初めてで、 関数のヘルプを見ても私のレベルでは理解不能 でございます・・・ 差し支えなければ、考え方を教えてもらえれば 助かります。 (お忙しければスルーで構いません)
お礼
早速の回答ありがとうございます。 出来ました! INDEX、ROW関数は使ったことがありませんので、 自分で数式の解読をしてみます。
補足
頂いた回答を基に、抱えている問題を解決しようと 思っていたのですが、応用しきれませんでした・・・ 皆様方が相当お詳しそうですので、失礼承知で再度 質問させていただきます。 当方は企業の人事担当者で、昇給資料を作らなければ なりません。グレード別レンジ別評価別に昇給が決まると いう仕組みで、社員の給与とグレードと評価は分かるの ですが、レンジのデータが得られていない状況です。 以下のようなことをしたいのです。 ・データテーブル(Sheet1!A1:E13) 職種 グレード 下限 上限 レンジ 営業職 4 350,000 360,000 III 営業職 4 340,000 349,900 II 営業職 4 330,000 339,900 I 営業職 3 303,400 320,000 III 営業職 3 286,700 303,300 II 営業職 3 270,000 286,600 I 技術職 4 370,000 380,000 III 技術職 4 360,000 369,900 II 技術職 4 350,000 359,900 I 技術職 3 313,400 330,000 III 技術職 3 296,700 313,300 II 技術職 3 280,000 296,600 I ・Sheet2!A1:C3に以下内容を入力 職種 グレード 給与額 営業職 3 310,000 技術職 3 310,000 このときに、Sheet2!Dにそれぞれ”III”、”II” を返したい 長くなって申し訳ないです。