• ベストアンサー

EXCELの条件式

たとえばA列に数値が降順に並んでいて、A1の数値がいくら以上、A3の数値がいくら以上、A5の数値がいくら以上の場合、指定したセルにパターン1と出力する条件式を考えています。 また、数値の組み合わせのパターンはパターン2、パターン3と複数あります。 この場合どのように条件式を作ればよいのでしょうか。 マクロ等を使って頂いてもかまいませんので教えてください。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

これは新しいタイプの質問ですね。 スマートでないかもしれないが、VLOOKUP関数のTRUE型を使います。 基準表を3つとして G1:L5に(G、I,K列は昇順に並べておくこと) 0 X 0 H 0 A 200 Y 20 I 5 B 600 Z 50 J 25 C 900 U 70 K 50 D 1500 V 120 L 75 E とする。エントリ数(行数)は各基準で違っていても良い。 x-Y、H-L、A-Eはランクを示す記号です。 データがA,B,C列に有るとして 150 35 13 550 65 35 890 78 45 1000 6 4 1600 150 80 D1に =VLOOKUP(A1,$G$1:$H$6,2,TRUE) E1に =VLOOKUP(B1,$I$1:$J$6,2,TRUE) F1に =VLOOKUP(C1,$K$1:$L$6,2,TRUE) と入れて、各列で下方向に式を複写する。 結果C1:E5に X I B Y J C Z K C U H A V L E これを1セルに結合する M1に=D1&E1&F1 下へ式を複写 XIB YJC ZKC UHA VLE これの組み合わせにコードを割り振る。組み合わせがすぐ多数になる 。 そこでまた組み合わせとコードの対応表を使って、VLOOKUPのFALSE型を使ってコード化する。 以上質問を誤解していないか心配ですが。 ーーー SUMPRODUCT関数で3系列の範囲条件を指定して、コード化する手もありそう。 ーーー VBAでやってもCASE文で分けるぐらいで、単純なコードになりそうにない。

jump1152
質問者

お礼

お礼が遅くなりました。 なんとかできました。 ありがとうございました。

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

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

A1=10、A3=5、A5=30のとき、B~E列以下のようににデシジョンテーブルを作成します。(B,C,D列をキーに並べ替えが必要) B列   C列   D列    E列 5    3    10    パターン1 5    3    20    パターン2 5    5    10    パターン3 5    5    20    パターン4 10    3    10    パターン5 10    3    20    パターン6 10    5    10    パターン7 10    5    20    パターン8 15    3    10    パターン9 任意のセルに =INDEX(E1:E9,SUMPRODUCT(MAX((B1:B9<=A1)*(C1:C9<=A2)*(D1:D9<=A3)*ROW(D1:D9)))) の式を入れると「パターン8」の答えが得られます 意味はA1の値がB列以上、A3の値がC列以上、A5の値がD列以上の最も大きいパターンを選択しています。(この場合パターン8) 質問では「ある値以上」が複数合致する場合小さい方を選ぶのか、大きい方を選ぶのか明示されていませんが、この応用で対応できそうに思います

jump1152
質問者

お礼

お礼が遅くなりました。 なんとかできました。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • edomin
  • ベストアンサー率32% (327/1003)
回答No.1

条件が抽象的すぎます。「例えば」ではなく、ある程度実用の例を示さないと =if(and(a1>=いくら,a3>=いくら,a5>=いくら),"パターン1","") こんな式しか回答されませんよ。

jump1152
質問者

お礼

お礼が遅くなりました。 なんとかできました。 ありがとうございました。

jump1152
質問者

補足

申し訳ありません。補足します。 自分で読み返してもわかりにくかったです。 あと、行と列を間違えてました。すいません。   A B C D E F G  1 100 95 90 80 77 75 70…    パターン1 2  97 92 85 82 81 70 69… 3  92 90 88 86 84 82 80…    パターン2 上のような数字が並んでいるとします(行数はもっとあります)。 たとえば、A列目が95以上でC列目が90以上、E列目が75以上でパターン1を指定したセルに出力(上記の場合ですと1行目があてはまる)。 また、複数パターンがありましてA列目が90以上でC列目が86以上、E列目が82以上の場合ですとパターン2を指定したセルに出力していく(上記の場合ですと3行目があてはまる)という感じです。パターンは複数ありパターン同士が重なることはありません。 本当に申し訳ありませんでした。

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

関連するQ&A