• ベストアンサー

エクセルの条件文が長すぎて・・・

エクセルで合計値を求めるための条件に苦戦しています。 A1が「a」かつA2が「b」の場合B1の数値をZ1に加える。というものですが、 それだけなら =IF(AND(A1=a,A2=b),B1,0) とかで大丈夫だとは思うのですが、 問題は上の条件文で数値を加えるかどうかを判断するB1のようなセルが35個あります。 Z1に=IF(AND(A1=a,A2=b),B1,0)+IF(AND(C1=a,C2=b),D1,0)+ ・・・ なんてしようものなら文が長くなりすぎて条件文が書けなくなってしまいます。 だからといって、他のセルを使うのはレイアウト上避けたいです。 A1、A2、B1などの配置もレイアウト上変えたくはありません。 面倒だとは思いますが、Z1に収まるように上手く出来ないでしょうか? ご指南お願い致します。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

一例です。 A1・B1・・・X1まで偶数列を加算しています。 =SUMPRODUCT((MOD(COLUMN(A1:X1),2)=0)*(A1:X1)) 又、A1:X1の奇数列に数値入力がなければ、=SUM(A1:X1)で合計できますが如何でしょうか。

kaoruk_goo
質問者

お礼

なにやら普段使わない関数ですが・・・ かなり良さそうです。 まだ試してはいませんが、問題解決しそうです^^ ご回答ありがとうございます。

その他の回答 (2)

  • FEX2053
  • ベストアンサー率37% (7987/21354)
回答No.2

>他のセルを使うのはレイアウト上避けたいです そういうときのための2枚目のシートなんですが・・・。 =IF(AND(sheet1!A1=a,sheet1!A2=b),sheet1!B1,0) こいつをsheet2にセルの個数分作って加算すれば済むだけの話 ではないかと思います。変に長い式を入れると、メンテナンス するときに訳が分からなくなって困りますよ。

kaoruk_goo
質問者

お礼

シートを使うのがいいみたいですね。 どうやら今の表は色々改良点は多いみたいな気がします^^; 参考にしたいと思います。 ご回答ありがとうございます。

  • pentium100
  • ベストアンサー率45% (689/1517)
回答No.1

VBAでユーザー関数を作ると幸せになれる。

kaoruk_goo
質問者

お礼

ご回答ありがとうございます。 VBAですか。なるほど・・・。 また覚えなきゃいけないことが増えそうです^^;

関連するQ&A

  • Excel 3つの条件文を一つのセルにいれたい。。

    Excel、下述の 3つの条件文を一つのセルにいれたい。。です。 その一つのセルを仮にD2とします =IF(A2="","",A2*O2) =IF(B2="","",B2*O2) =IF(C2="","",C2*O2) A2に数値がはいっていなかったらD2は空白で、数値が入っていたらA2*O2の計算をする B2に数値がはいっていなかったらD2は空白で、数値が入っていたらB2*O2の計算をする C2に数値がはいっていなかったらD2は空白で、数値が入っていたらC2*O2の計算をする つまり、上述のIF文を一つにまとめたいのです。 頭が悪くてわかりません、誰か助けてください!!!!お願い致しますm(_ _)m

  • エクセルで二つの条件の式

    例えば列にはA列にりんごとみかんがあり、B列にあ、い、あ、え、お、う、と数種入力、C列に数値があります。数値の合計を出したいのですがA列がりんごで、B列が”あ”の合計、また”い”の合計、”う”の合計とまたA列がみかんの場合同じくB列が”あ”の合計”い”の合計と出したいのですが式を作りましたがうまくいきません。教えてください。 SUMIF($A$1:$C$12,IF(AND(A:A="りんご",B:B="あ"),0),$C$2:$C$12)と IF(AND(A:A="りんご",B:B="あ"),(SUMIF(A2:C12,"あ",C2:C12)),0)二つもだめです

  • エクセルで条件によって判定させる方法

    みなさん、お忙しいことと思いますが、教えて下さい。 現在エクセルで判定シートを作っています。 条件の例として、 セルA1が0~5でB1が0~10の場合、Aとします。 セルA1が6~10でB1が11~20の場合、Bとします。 セルA1が11~15でB1が21~30の場合、Cとします。 それ以外の場合には、Dと判定するようにしたいのです。 そこで、以下のようにしてみました。 IF(AND(0<A1<5,0<B1<10),"A" ,IF(AND(6<A1<10,11<B1<20),"B" ,IF(AND(11<A1<15,21<B1<30),"C","D"))))) これが上手く機能しないので、教えていただけますか? 何卒、宜しくお願いします。

  • EXCEL IF文で最大値を出す

    最大値はMAXで出せ!といわれると元も子もないですが(^^;) IF文でなんとかならないの?という・・・はい、変わり者のAB型です まあそれはさておきA1,A2,B1,B2の4つを比較したいと思います (4項は全て違う値です) とりあえず =IF(AND(A1>B1),A1,B1) =IF(AND(A2>B2),A2,B2) これをC1,C2に代入し =IF(AND(C1>C2),C1,C2) ただこれでは項目が増えるごとに膨大な代入するセルが必要です ここで変数をn、mとし =IF(AND(n=(AND(A1>B1),A1,B1))>(m=(IF(AND(A2>B2),A2,B2)),n,m) とすれば大丈夫そうなのですが変数を宣言する方法が ネットを探索してもうまく見つけれません。 もしくは別の方法がありそうですが詳しい方助言を いただけないでしょうか?

  • エクセルで複数の条件のセル数をそれぞれ合計したい

    エクセルで複数条件のセルにそれぞれ分類を分け(判定)、分類ごとにセル数の合計を出したいのですが、この場合のセル合計を簡単に計算する条件式はないでしょうか?(分類項目はIF、AND関数を使って結果表示しています) 例)C列に分類AとBが0の時"*"、Aが1・Bが0の時"2"、ABとも1の時"1"、ABとも空欄の時空欄" "と判定し、"*"・"2"・"1"それぞれのセル数を合計したいのですが・・・。   列 A B C      行 1  0 0 *    2  1 0 2    3  1 1 1    4     ・        ・ どなたかご教示よろしくお願いします。

  • EXCELの条件文

    EXCELの条件文になると思うのですが A1には1、A2には2・・・A5には5が入力されており B1にはa、B2にはb・・・B5にはeが入力されている状況で 例えばC1に3を入力した場合、D1にはCを自動的に出力させたいのですが下記関数を使っても エラーとなってしまいます。(C1には1を入力したときのみaが出力されます) =IF(C1=A1:A5,B1:B5,"エラー") どのような関数式を用いればよろしいのでしょうか?

  • エクセルのセルに「1以上2未満」という条件を入れたい

    エクセルの関数でC1のセルに =IF(A1=B1,1,0) という関数を作ります。 A1のセルには0~100までの任意の数値が入ります。 B1のセルに「1以上2未満」という条件を入れたいのですが、 どのようにすれば良いでしょうか? エクセルの関数に「1以上2未満」と入れ込むのではなく、あくまでも B1のセルに「1以上2未満」という条件を入れたいのです。 よろしくお願いします。

  • IF文の書き方

    昨日 A1のセルに1~9の数字のどれかが入るとします。 A2のセルにA~Zのアルファベットのどれかが入るとします。 A3のセルにAAの文字が入っています。 A1のセルに2、A2のセルにCが入った時だけA3のセルのAAを A4のセルに表示し、それ以外の組み合わせの時は0を入れるようなIF文の書き方を教えてください。 の質問をして「=IF(AND(A1=2,A2="C"),A3,0)」の回答を頂きました。 運用上もう一つ条件を増やしたいのですが、書き方が解りません。 追加した条件とは 「A1のセルに2、A2のセルにCが入った時だけA3のセルのAAを」の所を 「A1のセルに2、A2のセルにCとDとEが入った時だけA3のセルのAAを」に変更した書き方を教えて下さい。 よろしくお願いします。

  • エクセルのIF文で10個の条件を指定できるのですか

    単純な質問かもしれませんがよろしくお願いします。 エクセルのIF文でセルの値が1ならA、2ならB、・・・10ならJと表示せよというように10個の条件を指定した式を作ることができるのでしょうか。

  • エクセルの条件追加について教えてください

    エクセルで以下のような条件(2つ)をセルCに指定したいのですが、どのようにすればよいでしょうか? 条件1:セルA(日付)から-21 かつ 条件2:条件1の計算で、その日付がセルB(日付)より前になる場合は、セルBと同じ日付となるようにする たとえば、セルAが2014/7/22だとすると、条件1だとセルCは2014/7/1になりますが、 もしセルBが2014/7/10(2014/7/1以降となっている)だった場合は、セルCも2014/7/10となるようにする SUM、IF、COUNTIFを使っていろいろ試してみたのですが、条件2がうまくいきません。 どなたか教えてください、よろしくお願いします。

専門家に質問してみよう