• ベストアンサー

EXCELの条件式

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • Excelで文字列セルにて条件式を設定するには

    Excelにて、書式設定が「文字列」のセルに以下の条件を設定するにはどうすればよいでしょうか。 どなたか教えてください。 Excelのマクロ機能を使用して、CSVデータを取り込み、シート上の所定のセルにCSVデータを出力させている既存システムがあるのですが、出力の際に次のような条件を追加したいと考えています。 なお、マクロの修正にて対応できればいいのですが、システムの設定上、マクロをいじることができないため、なんとかシート上で条件式にて対応したいと考えています。 列Bのセルに、隣の列Aの値をみて出力する内容を変えるための条件式を設定したい。 なお、列A,Bともに条件を設定する対象は複数行を想定。ともに書式は文字列。 例) ・A1の値が空欄でないとき、B1には取り込んだCSVデータの値を表示。 ・A2の値が空欄のとき、B2には固定で”あああ”と表示(現行ではA2のデータ元CSVがスペースの場合、B2のデータ元も必ずスペース。よって、A2、B2ともに空欄になっている)。 とりあえず、列BにIF文の条件式を設定してみたのですが、文字列セルのため、設定した条件がそのまま表示されてしまいます。 なにかよい方法はないでしょうか。よろしくお願いします。

  • エクセルでの計算式を教えて下さい。

    エクセルでの計算式を教えて下さい。 概要はある列のセルの数値と別のセルの数値の組合せによって、特定のセルの数値をコピーして別のセルにそれを表示させる。 具体的には、A列に入ってる数値と同じ行のB列に入ってる数値の組合せパターンにより、予め設定しておいたパターン別の数値をコピーしてそれをC列に表示させます。 つまりA列に1、B列に2という数値が入った時には、1と2の組合せパターンですよね。 Aが1、Bが2の組合せの時には33.5という数値が予めどこかのセルに用意してあり、それをコピーしてC列に表示する。 Aが5、Bが3の組合せの時には27.4という数値があり、それをC列に表示するといった具合です。 A列の数値は1~18、B列の数値も1~18のいずれかです。 組合せパターンは最大で324通りあり、組合せ別の数値には規則性はないので、予めどこかに記入しておきます。 この様な作業を出来る式を教えて下さい。

  • Excel でIFを使った複数条件の式を教えてください

    お世話になります。 Excelでの入力で困っています。 以下のような条件での式なのですが・・・ セルA1*B1の値が 100,000以下の場合200と出力 100,001以上で200,000以下の場合250と出力 200,001以上は場合450と出力 自分で作った式は IF(A1*B1>200000,450,IF(A1*B1>100000,250,200)) なのですが、上手くいきません。 関数はあまりあつかったことがないので、どなたかご教示いただけると 助かります。 よろしくお願いします。

  • (MS-Excel)複数の条件にマッチする複数のセルを配列?で出力させ

    (MS-Excel)複数の条件にマッチする複数のセルを配列?で出力させたい。 たとえば、条件1=A列で値が数値であるセルと、条件2=条件1でマッチしたセルと同じ行でC列で値が「その他」という文字列であるセルを検索させます。 そして、A列でマッチしたセルの値をE列に出力させて、C列でマッチしたセルの値をF列に出力させたい、というような感じです。 VLOOKUP関数などで、{配列}を使うなどすれば可能だと思って試行錯誤したけどダメでした。 なお、データベース関数のように条件セルなど作業セルが必要な方法は使いたくないです。 よろしく、お願いします。

  • EXCEL VBAである定数と列内の和が等しいものを抜き出す方法が知り

    EXCEL VBAである定数と列内の和が等しいものを抜き出す方法が知りたいです。 EXCELで    A 1 1000 2 800 3 700 4 300 ・ ・ ・ ・ ・ ・ のようにA列に降順で数値が入っているとき、A列のある数値の和が2000になる組み合わせの セルを求めたいのですが可能でしょうか? (上記の場合はcells(1,1)とcells(3,1)とcells(4,1)) よろしくお願いします。

  • Excelマクロであるセル条件を検出、他の決められたセルに色を付けたい

    Excelマクロであるセル条件を検出、他の決められたセルに色を付けたい その2 例えば、エクセルのあるセルに"A"が書かれていた場合、次にその列のセルに"A"書かれているまでは、続く列のセルには色をつけるようにしたいのですが、良い方法を教えて頂けないでしょうか? 対象となるシート(列方向)に、今回のパターンが複数存在し、 それぞれにこの処理を実施することを想定しております。 (イメージ画像を添付します)

  • Excelの条件付書式の色の付け方について

    Excelの条件付書式を使用して色を付けたいです。 特定のセルの値がマイナスの場合で、マイナス数値が入っている行のセルに値が入っていた場合、色を付ける条件式を作りたいです。 例 A列    B列   C列   ・・・・・  IV1 -1           10             ↑           ココに色を付ける 1つのセルのみの条件式だと 数式が =AND($A$1<0,$C$1<>"") という形で書けたのですが =AND($A$1<0,$C$1<>"")の式だと            ↑       ココの式を1つ1つ変えた条件式をIV列まで書かないとならない為すごく大変です。 数式が =AND($A$1<0,自分自身のセルが空白) というような書き方を教えて頂けないでしょうか?

  • Excel で 条件付き書式について

    Excel 条件付き書式で以下の設定式を教えて下さい。 A1セルに0から50 の数値入力の場合は、B1セルが赤色に A1セルに51から70 の数値入力の場合は、B1セルが黄色に A1セルに71から100 の数値入力の場合は、B1セルが青色に 以上、よろしくお願いいたします。

  • 条件付加算の式が分かりません。。

    さっそくですが A列1~10セルに「当り」又は「外れ」又は 空欄があり、 B列1~10セルに「数値」が書いてある表の場合で A列「当り」のみB列セルの数値を加算してC10セルに参照したい場合の関数式を 教えていただきたいです。 こちらで 何通か似たような事例を見て いくつか数式を試してみましたが うまく出来ませんでした;; ご存知の方がいらっしゃいましたら アドバイス 宜しくお願いいたします<(__*)>

  • エクセルのVBA 条件分岐について

    エクセルのVBAで、条件分岐プログラムを考えております。 セルA1に入力された数値が、 2.0以下は"B1セルの値をC1セルへコピー 数値が 5.0以上の場合は"B2セルの値をC1セルへコピー それ以外の場合は”対象外”と表示させたいのですが ご教授お願いします。 又、条件分岐後の部分『C1セルへコピー』の部分を"マクロ1を実行" "マクロ2を実行"というように、変える様な事も出来ますでしょうか? 以上よろしくお願いします。

専門家に質問してみよう