• ベストアンサー

[Excel] 簡単にSUMさせたいのですが…。

こんにちは。 添付の画面をご覧ください。 やりたいことは、サイズごとに個数と重量を合計したいだけなのですが、ちょっと変な表なのでDSUMとかSUMIFとか使いにくいんです。 単純に、=SUM(B2:B3,D2:D3,F2:F3) でも良いのですが、この表実際にはもう少し大きくて、サイズの行もデータによっては増減があります。 このような場合、H3やI3に入れる数式はどんなものが良いでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.7

こんにちは。 #5の回答者です。 IF を付けるのは、あくまでも、1行置きに表示するという理由からです。 =SUMPRODUCT(MOD(COLUMN(A$2:F$3),2)*$B2:$G3) この場合は、B2;G3で、2行分を計算するということです。もし、3行に変わるとかいうなら、B2:G4の3行分になります。 なるべく、統一した数式で、オートフィルで下にドラッグコピーで一度に出ないかと考え、前回のような数式にしました。同じフォーム(行数が同じ)なら、統一した数式で可能ですが、行数がそれぞれ違うのなら、それぞれの数式の内容は修正しないといけなくなります。

sukeken
質問者

お礼

こんにちは。 >統一した数式で、オートフィルで下にドラッグコピーで一度に出ないかと考え、 意味がわかりました。そこまで考えてくれていたんですね。 実はExcel実はあまり得意ではありません。でも、なんか好きになれそうです。 ありがとうございました。

その他の回答 (8)

  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.9

#8です。 合計する列を配列定数で指定するのであれば SUMPRODUCTでなく普通のSUMで通りますね^^;; 訂正します。 ------------------------------------- >空欄埋めは必須ですよね。 作業列を使えば別に必須ではありませんよ。  H2セル : =IF($J2=$J3,"",SUM(SUMIF($J:$J,$J2,OFFSET(A:A,,{1,3,5}))))  I2セル : =IF($J2=$J3,"",SUM(SUMIF($J:$J,$J2,OFFSET(B:B,,{1,3,5}))))  J2セル : =IF(A2="",J1,A2) としてそれぞれ下方にフィル。 以上ご参考まで。

sukeken
質問者

お礼

こんにちは。 やり方っていろいろあるんですね。 今回、とても勉強になりました。 幾つもの回答ありがとうございました。

  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.8

ん?  ご質問の趣旨を取り違えていたら申し訳ないのですが…。 列の構成が2×3で6列というのは (実際は多少多いかもしれませんが)【固定】なんですよね? 一方、 >サイズの行もデータによっては増減があります。 とありますから、 ・合計を表示すべき行が何行目なのか。 ・あるサイズの行が何行目から何行目までなのか は「1行おき」「2行ずつ」とは限らず【不定】なんですよね? であれば、 「どの列を合計するか」ということよりも 「どの行からどの行までを合計して、どの行に表示するか」 が問題なのかと思ったのですが…。 ------------------------------------------- 1. サイズ欄の空白を埋める 2. (必要であれば)サイズ欄について[条件付書式]を設定して、 直上のセルと同じ値であればフォント色が白になるようにする。 3. H2:I8セルを選択し、  =IF($A2=$A3,"",SUMPRODUCT(SUMIF($A:$A,$A2,OFFSET(A:A,,{1,3,5})))) を入力して[Ctrl]+[Enter] ※[Ctrl]+[Enter]とするのは単なる一括入力です。  配列数式として確定する必要はないので[Shift]は不要。  H2にまず入力して右方・下方にフィルしてもOK。 とすれば、 H列とI列で数式を分ける必要はありませんし、 数式を入れる行を選んだり、 サイズごとに数式を変える必要もありません。 ------------------------------------------- なお、実データの列の構成が2×3程度であれば、 OFFSETを使わず素朴に  =IF($A2=$A3,"",SUMIF($A:$A,$A2,B:B)+SUMIF($A:$A,$A2,D:D)+SUMIF($A:$A,$A2,F:F)) とした方が可読性・保守性が高いかもしれません。 以上ご参考まで。長乱文陳謝。

sukeken
質問者

お礼

こんにちは。 SUMIFを使う場合、この空欄埋めは必須ですよね。 透明?にしてしまえば良いと思いますが、運用が少し面倒かもしれません。 良い方法を考えてみます。 ありがとうございました。

回答No.6

>このような場合、H3やI3に入れる数式はどんなものが良いでしょうか? 参考までですが H3セルに =SUM((B:B,D:D,F:F) 2:3) 「=SUM((」まで入力後、B列を選択、[Ctrl]キーを押しつつD、F列を[クリックして括弧を閉じ、 [スペース]キー、2~3行目を選択し、「)」、数式を完成させます。 右へ一つオートフィル H2:I3セル範囲を選択して下へオートフィル 飛び飛びの列を選択が面倒ではあります(^^;

sukeken
質問者

お礼

こんにちは。 これはわかりやすいですね。 B,D,F列に「個数」とセル名を付けて、「=SUM((個数) 2:3)」としてしまうと、もっとわかりやすいかも。 いろんなやり方があるんですね、なんかわくわくします(笑。 ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 式の中の参照位置が少しややこしいです。 図を見ながら、以下の数式、H3 から貼り付けてください。 範囲を広げる場合は、解説をみて直してみてください。 H3 (統一式) 同じ数式、ドラッグコピーしても良いですが、書式もコピーされますので、数式だけにしてください。 ---------------------------------- =IF(MOD(ROW(A1),2),SUMPRODUCT(MOD(COLUMN(A$2:F$3),2)*$B2:$G3),"") ----------------------------------- 式の解説 MOD(ROW(A1),2) は、一行置きになっているので、1と0、つまり、TRUE, FALSE にします。 TRUE 側、 SUMPRODUCT(MOD(COLUMN(A$2:F$3),2)*$B2:$G3) MOD(COLUMN(A$2:F$3),2) 最初と同じく、列数にが、一列置きになっていますので、 1 と0、つまり TRUE, FALSE にします。 データ範囲を左に一列ずらすのは、TRUE,FALSE が逆になっているからです。 A$2:F$3 計算のデータ範囲 $B2:$G3

sukeken
質問者

お礼

こんにちは。 理解するのにかなり手間取っています。 で、H3の数式ですけど =SUMPRODUCT(MOD(COLUMN(A$2:F$3),2)*$B2:$G3) ではダメなのでしょうか?値は、同じ感じになります。 そして頭のIF文の意味がいまいちわかっていません。 また、20cmの行は1行だったり、3行だったり可変するようです。 だいぶ進みました。ありがとうございました。 もしフォローいただけるのでしたら、お願いします。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

配列式を使えば可能ですが判りにくいかも知れません。 H3に↓ =SUM((MOD(COLUMN(B2:G2),2)=0)*B2:G2)+SUM((MOD(COLUMN(B3:G3),2)=0)*B3:G3) I3に↓ =SUM((MOD(COLUMN(B2:G2),2)=1)*B2:G2)+SUM((MOD(COLUMN(B3:G3),2)=1)*B3:G3) それぞれ、Ctrl+Shift+Enterで配列式として確定します。 1列おきの合計を上の行、下の行で出して足しています。

sukeken
質問者

お礼

こんにちは。 配列式としての確定なんてのがあるんですね。 勉強になります。 今いろいろ検証しています。おもしろいです。 ありがとうございました。

回答No.3

※どうしてもこの表の形を保持したい場合 ●隠し行で計算させる  各サイズの下に2行追加します。4行目に個数の集計行を、5行目に重量の集計行を作ります。  B4セルに=B2+B3 、C4セルは空白にし、B4:C4をコピーして一気に右側にコピーします。  同様にB5セルは空白、C5セルは=C2+C3として、やはり右側にコピーします。  4行は個数、5行は重量だけになりますから、SUMで簡単に集計できます。  これを各行に作った後、非表示とすれば、見栄えも狂いません。

sukeken
質問者

お礼

こんにちは。 この方法はシンプルでよいですよね。 参考にさせていただきます。 ありがとうございました。

  • sky-plane
  • ベストアンサー率37% (33/88)
回答No.2

個数計の列と重量計の列は必要ありません。集計という機能を使えば問題ありません。 その前に上記のようなグラフの形式ではまずいので変える必要があります。 個数の列と重量の列を一つにしてください。入力する範囲が足りなくなったら行の追加をしましょう。そのあとで次のようにしてください。 合計を求めたい表の範囲を選択します。(ここで、個数計と重量計の列は含みません。) 次にデータタブ→集計を選択します。 出てきたダイアログボックスに次のように設定します。 グループの基準:サイズ 集計の方法:合計 集計するフィールド:個数と重量にチェック OKをクリック そうすれば自動的に集計されて合計が表示されます。 集計が邪魔になる場合は集計している範囲を選択して同じように集計ダイアログボックスを開いてすべて削除をクリックすれば大丈夫です。 分からないところがありましたらご報告お願いします。

sukeken
質問者

お礼

こんにちは。 個数と重量、行増やしで対応したいですよね。私もそう思います。 ただ、サイズが多いんです。で、しかも全部を1ページで出したいとかで、ギュウギュウ詰めの表になってしまう勢い。 なんとかこの形を維持したまま計をとりたい。そんな、無理な話なんです。 とにかくH3,I3に入る数式を見つけたいだけです。 ありがとうございました。もしよろしければフォロー願います。

回答No.1

そもそも、なぜこのような表なのでしょうか? 2行ごとにサイズを分けて、それを集計しようとすれば、難しくなるのは当然だと思うのですが…。 たとえば、B・C列を20cm、D・E列を21cmとすれば、単純に縦計で算定できます。 このような形で出力したいのであれば、別シートに出力用のシートを作ってはどうでしょう。

sukeken
質問者

お礼

こんにちは。 そうなんです。この表、ちょっと変なんですよね。 おそらく、何カ所からのデータをサイズごとに入力して、何とか合計を出そうとしているんだと思うんですけど。 ただ、これが良いみたいなので出来ればこのまま行きたいんです。 と言うか、この状態で解決させたいという変な野望もあったりしますし…。 ありがとうございました。さらなるフォローをお願いします。

関連するQ&A

  • Excel2007簡単に合計の数式を入力したいです

    どう検索していいかも分からず、こちらの質問にも似たようなのがないようでしたので 質問させて頂きました。 右に3つ、下にたくさん(変動します)表が並んでいるんですが、 その途中に、合計の式を挿入したいと思っています。 ところが、項目も変動するもので、どう取り組めばいいか、見当もつきません。 一応、VBAで出来ればと思っています。 (VBAはまだまだ勉強中の身です) 具体的に言うと、     A   | B      |  C     |     D   |   E   |F     1地名    |個数     |地名     |  個数    | 地名   |個数 2登 別   |        |湯の川    |        |登別    | 3湯の川   |        |北海道合計|(SUM)     |湯の川   | 4北海道合計|(SUM)    |白骨     |         |北海道合計|(SUM) 5有馬    |        |野沢     |         |有馬     | 6皆生    |        |甲信越合計|(SUM)    |皆生     | 7近畿合計  |(SUM)    |総合計   |(SUBTOTAL)|近畿合計  |(SUM)   8総合計   |(SUBTOTAL)|       |         |総合計    |(SUBTOTAL) ・ ・ ・ 101地名    |   個数  |地名    |  個数     |  102登 別   |        |湯の川   |         | 103湯の川   |        |北海道合計|(SUM)    | 104北海道合計|(SUM)    |白骨    |        | 105有馬    |        |野沢    |        | 106皆生    |        |甲信越合計|(SUM)    | 107近畿合計  |(SUM)    |総合計   |(SUBTOTAL)|   108総合計   |(SUBTOTAL)|        |         | 見辛くて申し訳ありませんが、こんな感じです。 基本的に、横に3つ並んでいますが、一番下の表だけ横に2つや1つになったりします。 表に通し番号はありませんが、一応順に並んでいるので、このままの状態で出来れば、と思います。 作業開始時、B・D・F列は、見出しの「個数」を除いて空白です。 数量は後から入力する仕様で、空白のままで、 地域合計・総合計にのみ数式を入力して完成させたいです。 SUMの集計範囲も、合計セルの位置も毎回上下に変動するので、 頭を抱えています…。 このSUMやSUBTOTALを、なんとか簡単に入力できる方法をご教授下さい。 VBA以外でも構いません。 よろしくお願いいたします!

  • エクセル関数:複数の条件を満たす行の合計

    例えば下記の様な表の場合に、A行が”2”で、B行が”桃”の行のCの値の合計を出したいのですが。 A   B     C 1 2 桃    10 2 2  蜜柑 10 3 3  蜜柑 10 4 3  桃 10 5 2  桃 10  6 4  蜜柑 10 SUMIFで、出来ないかなと思ったのですが複数の条件の場合というのがヘルプに出ていません。 エクセル本を見たところDSUMというやり方があるのですが、これだと数式だけでなく欄外に見出しと条件の入った表を別途作成しなければならないようです。 色んな場合の合計を出すのに、場合の数だけ見出しと条件の入った表を作るというの方法しかないのでしょうか? もし関数の数式だけで上記の値を出す方法を御存知の方、教えて下さい。 「DSUMで、見出しと条件の入った表を作ってしか出せない」というお答えでもけっこうです。出来ないと分かれば、簡単に数式だけで出すのは諦めて、DSUMを使います。

  • エクセルの条件付きSUMに

    エクセルの条件付きSUMに ついての数式の質問です    A    B   C   D 1  リンゴ  4 \120 2  ミカン  3 \100 3  リンゴ  3 \130 4  リンゴ  2 \120 5  ミカン  3 \100 リンゴ(A列)120円(C列)の商品の 個数(B列)の合計をだす。数式があれば教えて下さい 宜しくお願いします。

  • エクセルの関数について教えて下さい

    現在ある表を元に、見積書を作っています。 すごい効率が悪く、困っています。 A1~G3に表があります。(実際にはもっと多いです) 1行目に商品名 2行目に金額 3行目に個数 G3 に合計 1・2行目は、元々商品名・金額が入っており 3行目に個数を入れていきます。 G3に合計が入るようにしています。 B2、350円  C2、320円  D2、400円  E2、500円  F2、550円  G2 B3、 1    C3、      D3、 1    E3、       F3、      G3、750円  (現在のG3に入っている数式) =F3*F2+E3*E2+D3*D2+C3*C2+B3*B2 項目が多い為、数式がすごい事になっています。 もっといい方法はないでしょうか? わかる方おられましたら、教えて頂けませんか? よろしくお願いします。

  • エクセルのオートSUMの使い方

    エクセルの2010でBに出勤時間 Cに退勤時間 Dに勤務時間を出せて  D3からD36を選択して オートSUM 合計のボタンを押して設定しましたが 3日目あたりから合計ではなく-計算をするものが出てくるのですが 何がおかしいのでしょうか?       これがD36の内容です =SUM(D3:D35) パソコンはhpノートでOSはxpです 宜しくお願いします

  • 表計算で、SUM関数でもとめた合計を10%アップルされる関数は?

    初歩的な質問で、恥ずかしいのですが、 エクセル表計算で、 A(個数)×B(単価)=合計 ←SUM関数でもとめています。 この合計を10%アップされる関数を教えて下さい。

  • 【EXCEL】 =sum(A+B+C)って?

    仕事を引き継いで、エクセルのテンプレートを頂いたのですが、数式が納得できません。 セルの数字を2個~3個 合計するだけなのに =SUM(A+B+C) と入力されているんです。 確かに正しい答えがでるんですが、 それなら素直に =A+B+C で入力するか =sum(A,B,C) じゃ、ないのかなぁ~って思ってるんですけど 何か意図があるのかなぁ~といじってません。 ちなみに、元データを作った人は退職されていないのでgooで質問してみました。 気持ち悪いので、勝手に直しても問題ないでしょうか?

  • エクセルの計算式について教えてください!

    すみません、エクセルの素人なんですが教えていただきたくて 質問させていただきます。 まず下の2つの表があるとします。 表(1)     A    B 1 にんじん 100 2 レタス   50 3 とまと   100 4 レタス  -200 5 レタス   100 表(2)      F 10 にんじん 11 とまと 12 レタス ひとつのセルに数式を挿入するのですが、その数式というのが表(2)のF12のレタスだけの 合計値を表(1)のB列から抜き出し計算したいのです。 そしてマイナス分は計算から除外したいのです。 一応調べてみたところ、抜きだして計算する式が『=SUMIF(A1:A5,F12,B1:B5)』、 マイナス分を除外するのが『=SUMIF(B1:B5,">0"』ということがわかったので この二つの式を合わせたらいいのかと思い、 『=SUMIF(A1:A5,F12,(B1:B5,">0"))』にしてみましたが計算出来ませんでした。 素人なのでこれ以上わからず困っています。 どなたかご存じの方よろしくお願いいたします。

  • 配列数式の怪

    お世話になります。 配列数式の入力方法にて解せない部分がありましたのでご教示願います。 ソフトウェア開発の工数見積をしようと思って、Excel2003で添付の様な WBSを作りました。 ここで、機能1~3を実装するか否かをD2~F2に○で指定し、 各機能毎に必要な作業項目をD3~F6でマッピングしました。 ※5は作業対象の工数合計で、 =SUMIF(C3:C6,"○",B3:B6) になっています。 (実際には、機能、作業項目共に数十項目のマトリクスになってます) 各作業項目1~4が見積対象になるかどうかを実装する機能に従って 表示しようと思って、C3~C6に配列数式を使って ※1:{=IF(SUM(($D$2:$F$2="○")*(D3:F3="○"))>0,"○","")} ※2:{=IF(SUM(($D$2:$F$2="○")*(D4:F4="○"))>0,"○","")} ※3:{=IF(SUM(($D$2:$F$2="○")*(D5:F5="○"))>0,"○","")} ※4:{=IF(SUM(($D$2:$F$2="○")*(D6:F6="○"))>0,"○","")} と入力しようと思いましたが、どう入力しても下記の様に行番号を可変に したいところが全て同じ行番号になってしまいます。(D3:F3) ※1:{=IF(SUM(($D$2:$F$2="○")*(D3:F3="○"))>0,"○","")} ※2:{=IF(SUM(($D$2:$F$2="○")*(D3:F3="○"))>0,"○","")} ※3:{=IF(SUM(($D$2:$F$2="○")*(D3:F3="○"))>0,"○","")} ※4:{=IF(SUM(($D$2:$F$2="○")*(D3:F3="○"))>0,"○","")} ここで、例えば※2のD3:F3だけをD4:F4に変えても他の行も全てD4:F4に 変わってしまいます。 いろいろと試行錯誤した結果、一旦全て削除してまっさらな状態から ※1に{=IF(SUM(($D$2:$F$2="○")*(D3:F3="○"))>0,"○","")} を入力した後に1行開けて※3にコピーしたところ、無事に D3:F3がD5:F5に変わりました。 そこで、その後に ※2に{=IF(SUM(($D$2:$F$2="○")*(D4:F4="○"))>0,"○","")} を入力した後に※4にコピーして目的を達成できました。 (実際には、奇数行、偶数行でそれぞれ数十行ずつのコピーをしました) これは、配列数式入力時の仕様なのでしょうか? また、本来はどの様に入力するのが正解なのでしょうか?

  • Sum関数の使いかたについて(ACCESS)

    レポート上に商品A、商品B、商品Cというテキストボックスがあってそれぞれのプロパティのコントロールボックスには以下の設定がしてあります。 =DSum("[商品A]","[抽出クエリ]") =DSum("[商品B]","[抽出クエリ]") =DSum("[商品C]","[抽出クエリ]") 商品A~Cそれぞれの合計値は正常に表示されるのですが、商品A~Cの合計値を別に設けたテキストボックス(総計)に表示させたいのですが、何も表示されません。 総計のコントロールボックスには以下の記述をしました。 =Sum([商品A]+[商品B]+[商品C]) Web検索で関数の使い方等を調べましたが、原因が分かりません。 どなたか、サポートをお願いいたします。

専門家に質問してみよう