• ベストアンサー

エクセルを使った条件付き表計算の方法を教えて下さい

いつも皆様方の的確なる回答を拝見して感心しております。 そこで、私の質問にお答えいただきたいと思います。 質問は、いたって簡単な表計算です。 しかし、少しひねっております。 これはあくまで例で、実際はもっといろいろなセルがあります。 例) A1,A2を一つのセルに結合し、その結合したセルを仮に"A"とします。 B1,B2をそれぞれ"前半"と"後半"とします。 以上を1つのグループとして以下、"B"、"C"、"D"、"E"と計5つのグループがあり、その合計を出したいのです。 しかし、条件が2つあります。 条件その1:AからEグループの前半もしくは後半に数字が入れば、その合計を計算して表示する。しかし、数字が入らなければ計算をしない。 条件その2:計算をした場合についてはその数字を"("、")"で囲む。 なお、合計の"数字"と"("、")"の関係は一つのセル内であっても、それぞれ3つのセルに分かれていてもオーケーです。 こんな感じになります。 -----+-------------- 前半 1 A +------+-------- 後半 -----+------+-------- 前半 2 B +------+-------- 後半 -----+------+-------- 前半 3 C +------+-------- 後半 -----+------+-------- 前半 4 D +------+-------- 後半 -----+------+-------- 前半 5 E +------+-------- 後半 -----+------+-------- 前半 (15) 合計+------+-------- 後半 --------------------- ちょっと説明がうまくできなくてスミマセンが、よろしくお願いします。

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

  • ベストアンサー
回答No.1

この例題をそのまま式にすれば、 =IF(AND(C1="",C3="",C5="",C7="",C9=""),"",SUM(C1,C3,C5,C7,C9)) か、もしくは =IF(COUNT(C1,C3,C5,C7,C9)>0,SUM(C1,C3,C5,C7,C9),"") で答えはでると思います。 答えをカッコでくくる場合は =TEXT(選択セル,"(#,###)")でできますが、数字がテキストになってしまいますので、それがいやなら関数を使わずに「セルの書式設定」で表示形式をユーザー設定でカッコをつけてしまえばいいと思います。

A-kamada
質問者

お礼

回答ありがとうございました。 どうも私の質問に問題があり、みなさまには非常にご迷惑をおかけしたみたいで、お詫び申し上げます。 しかしnobitahairさんは私の質問を真剣に考え、答えていただき非常に感謝しております。私が質問した内容はnobitahairさんによって、解決しました。 どうもありがとうございました。 ところで現在、今回質問した内容の発展型?の質問を考えております。 もう少しわかりやすく、するつもりですのでその時はよろしくお願いします。

その他の回答 (4)

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

>A1,A2を一つのセルに結合し、その結合したセルを仮に"A"とします 漢字はつかめるがAグループとでも言ったほうがよいよう。結合するとセルはA1に代表されます。 >B1,B2をそれぞれ"前半"と"後半"とします B1,B2には文字列の前半や後半が入っているのか B1,B2に数字が入るのか(空白の場合があるとしても) C1,C2などに数字が入るのか >前半もしくは後半に数字が入れば >数字が入らなければ計算をしない。 数字と空白しかないのか、文字列なども入るのか。数字を強調するとそういう風にかんぐる。 >その合計を計算して表示する 合計は前半だけの合計、後半だけの合計ですか、前半も後半もあわせての合計ですか。何か特別の計算ですか。 >計算をした場合についてはその数字を"("、")"で囲む。 各加算要素セルに()をつけるのか、合計値セルだけに()をつけるのか これは関数式ではできないでしょう。書式でも条件付の書式に表示形式の 選択はないので難しいでしょう。 結局VBAでやらざるを得ないが、毎回やる仕事でなければ、人手で操作 すればどうですか。

A-kamada
質問者

お礼

imogasiさんのご指摘を肝に銘じ、こりずに現在、今回質問した内容の発展型?の質問を考えております。 もう少しわかりやすく、するつもりですのでその時はよろしくお願いします。

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.4

No.3です。 もし、B列に入っているのが、「前半」「後半」の文字で、数字はC列に入っているのなら、 B11:=SUMIF($B$1:$B$10,"前半",C$1:C$10) B12:=SUMIF($B$1:$B$10,"後半",C$1:C$10)

A-kamada
質問者

お礼

回答ありがとうございました。 どうも私の質問に問題があり、みなさまには非常にご迷惑をおかけしたみたいで、お詫び申し上げます。 私の質問に問題があるにもかかわらず、非常に丁寧に回答いただき感謝しております。 現在、今回質問した内容の発展型?の質問を考えております。 もう少しわかりやすく、するつもりですのでその時はよろしくお願いします。

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.3

こんにちは~ No.2 の方に同じく、 > しかし、数字が入らなければ計算をしない。 の意味がよくわかりませんでした。 合計が 0 になる場合は非表示にしたい、ということでしたら、合計を出すセル(B11:B12?)の表示形式を「ユーザー定義」で No.2の方の回答のようにした上で、 B11:=SUMPRODUCT((MOD(ROW(B$1:B$10),2)=1)*1,B$1:B$10) B12:=SUMPRODUCT((MOD(ROW(B$1:B$10),2)=0)*1,B$1:B$10) B11の数式は、 B1:B10 のうち、奇数行だけを計算します。 B12の数式は、 B1:B10 のうち、偶数行だけを計算します。 的外れでしたらごめんなさい。

noname#11836
noname#11836
回答No.2

>数字が入らなければ計算をしない。 の意味が不明ですが、 単にゼロ表示しない ということで用足りるなら、 合計欄のセルの書式設定を (#,###);(-#,###); にするだけで、目的に合うと思います。

A-kamada
質問者

お礼

回答ありがとうございました。 どうも私の質問に問題があり、みなさまには非常にご迷惑をおかけしたみたいで、お詫び申し上げます。 ok20050706さんのおっしゃるとおり、意味がよく分からないですねぇ。 現在、今回質問した内容の発展型?の質問を考えております。 もう少しわかりやすく、するつもりですのでその時はよろしくお願いします。

関連するQ&A