[関数] 集計用の関数についてご教示ください

このQ&Aのポイント
  • Excel2010を使用し、特定の項目ごとに集計を行いたい場合、どのような関数を使用すればよいでしょうか?また、集計用の列を追加した場合としない場合の関数についても教えてください。
  • リスト内の特定の項目ごとに集計を行いたい場合、Excel2010ではどのような関数が適していますか?また、集計用の列を追加する必要がある場合としない場合の関数についても教えてください。
  • Excel2010を使って特定の項目ごとに集計を行いたい場合、どの関数が最適でしょうか?また、集計用の列を追加するかしないかによって使用する関数も異なるので、それぞれの関数について教えてください。
回答を見る
  • ベストアンサー

[関数] 集計用の関数についてご教示ください

こちらの識者の方々にはいつもお世話になっています。 関数の質問です。 環境は下記になります。 OS=windows7 pro 64bit Office=Excel2010(14.0.7128.5000) ・やりたいこと 図のようなリスト(A3:G7)があり、りんごやバナナなどの項目ごとに誰がいくつか集計したい(A11:C14) B12:C14の範囲に関数を入力して数字を導き出したいのですが、 その際の関数の範囲はA4:G7を指定したいのです。 (りんごの列の関数の範囲はA4:G5、ばななの列の関数の範囲はA6:G7という風に分けたくない) Aに1列追加して A4=りんご担当 A5=りんご個数 というような集計用の列を作成することは可能です。 このような場合どのような関数を使えばよいでしょうか? もし可能であれば集計用の列を追加した場合としない場合、両方の関数を教えていただければ幸甚です。 (集計用の列をどのような値にするかも併せて教えていただけますでしょうか) 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.6

サンプルの通りに配置すると B12: =SUMIF(OFFSET($1:$1,MATCH(B$11,$A:$A,0)-1,0),$A12,INDEX($A:$A,MATCH(B$11,$A:$A,0)+1)) 右に下にコピー ぐらいで。 サンプルのりんごばななの表範囲に,計算範囲を限定するのは実用上得策じゃありません。 >集計用の A列に追加しても全然役に立ちません。 敢えて集計用に追加をするなら,たとえば3行目に C3: りんご山田 D3: りんご田中 E3: りんご山田 F3: りんご久保田 G3: りんご山田 6行目に一行挿入してばななの表は7:8行に下げ C6: ばなな田中 D6: ばなな田中 E6: ばなな久保田 F6: ばなな田中 G6: ばなな山田 となるよう計算式を追加すれば,集計表は単純なSUMIF関数だけで一発計算できますが,たぶんこんなレイアウトでは使いたくないでしょうから回答は割愛します。

rihitomo
質問者

お礼

回答ありがとうございます! 教えていただいた関数で問題なくできました。 関数の意味を一つ一つ紐解きながら理解していこうと思います。 たしかに仰るような作業列でないとできなさそうですね。 参考になりました。 ありがとうございます。

その他の回答 (5)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.5

>B12:C14の範囲に関数を入力して数字を導き出したいのですが、その際の関数の範囲はA4:G7を指定したいのです。 関数の引数でセル範囲を指定するときすべての場面で$A$4:$G$7を使うと言うことですか? B12セルへ次の数式を入力し、右へC2までオートフィルコピーした直後に下へC15までコピーしました。 =IF($A12="","",SUMPRODUCT((INDEX($A$4:$G$7,MATCH(B$11,INDEX($A$4:$G$7,0,1),0),0)=$A12)*1,INDEX($A$4:$G$7,MATCH(B$11,INDEX($A$4:$G$7,0,1),0)+1,0))) 結果は貼付画像のようになります。 A15が空欄のためB15:C15は""(空欄)になります。 担当の該当が無いときは0が表示されます。(エラーになりません) 0を表示したくないときは条件付き書式で0のときはフォントの色をセルの塗りつぶしの色と同じにすれば良いでしょう。(塗りつぶしなしのときはフォントを白にする) 数式が長くても良ければ次のように変更すれば0のときは””になります。 =IF(OR($A12="",SUMPRODUCT((INDEX($A$4:$G$7,MATCH(B$11,INDEX($A$4:$G$7,0,1),0),0)=$A12)*1,INDEX($A$4:$G$7,MATCH(B$11,INDEX($A$4:$G$7,0,1),0)+1,0))=0),"",SUMPRODUCT((INDEX($A$4:$G$7,MATCH(B$11,INDEX($A$4:$G$7,0,1),0),0)=$A12)*1,INDEX($A$4:$G$7,MATCH(B$11,INDEX($A$4:$G$7,0,1),0)+1,0)))

  • Safe_Mode
  • ベストアンサー率48% (1329/2725)
回答No.4

質問に対する直接的な回答ではないのですが… そもそも集計用データの作り方を工夫すれば、難しい関数など使わなくてもピボットテーブルでいくらでも対応できるのに…と思ってしまいます。 添付画像はピボットテーブルを使うための一例です。

rihitomo
質問者

お礼

回答ありがとうございます! ピボットもたしかに解の一つですね。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.3

「注文の多い料理店」は宮沢賢治の短編ですが、貴方は“注文の多い質問者”かも知れない(^_^) セル B12 に次式を入力して、此れを右および下方にオートフィルでOKかと。 =SUMPRODUCT((OFFSET($A$4,MATCH(B$11,OFFSET(INDIRECT(CELL("address",data)),,,ROWS(data),),0)-1,2,,COLUMNS(data)-2)=$A12)*OFFSET($A$4,MATCH(B$11,OFFSET(INDIRECT(CELL("address",data)),,,ROWS(data),),0),2,,COLUMNS(data)-2)) 【お断り】data は参照範囲(今回は A4:G7)に付けた範囲名だけど、その代わりにアドレス(今回は $A$4:$G$7)を入力しても構いません。

rihitomo
質問者

お礼

回答ありがとうございます! 教えていただいた関数で問題なくできました。 関数の意味を一つ一つ紐解きながら理解していこうと思います。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 失礼しました。 >その際の関数の範囲はA4:G7を指定したいのです。 >(りんごの列の関数の範囲はA4:G5、ばななの列の関数の範囲はA6:G7という風に分けたくない) という条件がある事を見落としておりました。  その場合、まずB12セルに次の様な関数を入力して下さい。 =IF(OR(B$11="",$A12=""),"",IFERROR(SUMIF(INDEX($C$4:$G$7,MATCH(B$11,$A$4:$A$7,0),),$A12,INDEX($C$4:$G$7,MATCH(B$11,$A$4:$A$7,0)+1,)),0)) 或いは =IF(OR(B$11="",$A12=""),"",IFERROR(SUMIF(OFFSET($C$3:$G$3,MATCH(B$11,$A$4:$A$7,0),),$A12,OFFSET($C$3:$G$3,MATCH(B$11,$A$4:$A$7,0)+1,)),0))  その上で、B12セルをコピーして、B12:C14のセル範囲に貼り付けて下さい。

rihitomo
質問者

お礼

回答ありがとうございます! 教えていただいた関数で問題なくできました。 関数の意味を一つ一つ紐解きながら理解していこうと思います。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 まず、B12セルに次の関数を入力して下さい。 =SUMIF($C$4:$G$4,$A12,$C$5:$G$5)  次に、C12セルに次の関数を入力して下さい。 =SUMIF($C$6:$G$6,$A12,$C$7:$G$7)  そして、B12~C13のセル範囲をコピーして、B13~C14のセル範囲に貼り付けて下さい。

関連するQ&A

  • [関数] 集計用の関数について

    こちらの識者の方々にはいつもお世話になっています。 関数の質問です。 環境は下記になります。 OS=windows7 pro 64bit Office=Excel2010(14.0.7128.5000) ■やりたいこと 図のような元リスト(A1:F13)があり、それを人ごとのリスト(H1:L13)で集計したい。 I2:L13に関数を入力し集計したいのですが、どのような関数を入れればいいか教えていただきたい。 ■定義と条件 ・A列の日付とB列の項目を結合した値はユニークです(5月1日のりんごは1行しかないことは担保されています) ・同様にC1:F1の値もユニークです ・元リストの条件指定の引数で(C2:C13)は使いたくない  (人ごとにシートがあるので、H1の値によって取得する値を変えたい) このような場合どのような関数を使えばよいでしょうか? 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • 【Excel】データベース関数

    B列が0以外の商品名と個数が、C列D列に自動的に出てくるようにしたいです。 何関数を使うのが適切でしょうか??宜しくお願いいたします。 A列   B列  C列   D列 エノキ  0個  バナナ  8個 バナナ  8個  りんご  5個   りんご  5個 なすび  0個

  • 関数で困ってます

    パソコン初心者なので難しいことは分からないですが・・・ Bのシートに  A列         B列      C列 品名        支店番号     個数  りんご       2           10 みかん       2           3 バナナ       1          7 バナナ       2          1 メロン       1          2 が入っています。 Aのシートにて、品名がバナナで、なおかつ支店番号が1の場合のみ、Bのシートの個数を返す という式を作りたいのですが うまく出来ません 説明が下手で分かりにくいと思いますが、分かる方がいらしたら教えてください。   

  • SUBTOTALと他関数の合体はできますか?集計の時です

    エクセルの集計を行いたいのですが、オートフィルターを活用している中、集計をSUBTOTALとIF関数の合体のようなものを作りたいのです。出来ますでしょうか・・・(私の知識の無さですみません) 一例はこの通りです。    A列 B列  C列 1 幼児 りんご 300 2 中学 みかん 100 3 高校 バナナ 200 4 大人 りんご 500 別の行にそれぞれの集計値を出すセルを作ります。 幼児合計 中学合計 高校合計 大人合計 B列の集計をしたいとき、各合計は、 普通にSUBTOTALだけだと幼児も中学も高校も全部一緒の合計になってしまいます。 さらにA列を絞りこめばいいのですが、分析において絞り込みたくないのです。 りんごは幼児、中学、高校、大人にどのくらいあるのかを 一目で分かるようにしたいためです。 どうか、ご教授ください。

  • Countif関数について教えてください。

    アンケートメールをCSV出力したものを集計しようと考えています。 Excelで、countif関数を使ってキーワードを元に数を出そうと思ったのですが、 正しい結果が出ません。 [hoge.xls]      A 1 りんごジュースは   りんごからできている 2 りんごとみかんは   違う果物だ 3 みかんとバナナでは   みかんの方がすっぱい といったデータがあるときに、「りんご」というキーワードが 含まれるセルの個数を出したいと考えています。 結果を出すのは、実際には別のファイルで、A列のキーワードが何個あるかをB列に出したいと考えています。 上記の例だと    A    B 1 りんご   2 2 バナナ   1 といった感じです。 そこでこういう関数を出してみました。 COUNTIF([hoge.xls]Sheet1!$A$1:$A$3,"*"&A1&"*") データが少ない場合には、この関数で正しく結果が出るのですが、 実際には300件以上のデータがあり、結果が実際の 件数よりもずっと少なく出ているような感じがします。 メールですので、元データには改行も含まれますし、 1つのセルに2つ以上、同一のキーワードが含まれることもあります。 原因らしきものの検討がつきません。 どうかお知恵をお貸しください。 #あるいは他のデータ個数抽出方法があれば、教えてください。 よろしくお願いします。

  • Arrayformula関数について

    Googleスプレッドシートで、Arrayformula関数とsumifs関数を用いて計算をしたいのですが、エラーになってしまってうまくいきません。どなたか教えていただけると助かります。     (1)表              (2)表  A   B    C       A   B   C 1社名 商品   売上     1社名  商品  売上 2A社 りんご  100     2A社 りんご  100 3B社 りんご  100     3A社 バナナ   70 4A社 バナナ   70   ⇒  4A社 メロン    0 5C社 メロン  200     5    計   170 6C社 バナナ   70      6B社 りんご  300 7A社 りんご  200      7B社  バナナ    0                 8B社 メロン    0                 9    計     300                 10C社 りんご    0                 11C社 バナナ   70                 12C社 メロン  200                 13    計    270 (1)表のデータから(2)表を作るのですが、社名と商品の組合せでsumifs関数で(2)表の条件を絞り込み、売上額を集計しています。そしてさらに各社ごとに小計を求め、それぞれの会社ごとの集計を入れています。 それまでは、(2)表のA列・B列は固定で、C列の売上については =SUMIFS('(1)表'!$C$2:$C$7,'(1)表'!$A$2:$A$7,$A2,'(1)表'!$B$2:$B$7,$B2)とし、 小計の欄(C5)には =SUM(C2:C4)と入れて、それを最下段までコピーしておりました。 今それだとレスポンスが非常に遅くなるために、ARRAYFORMULA関数を使って、時間削減を図りたく考えているのですが、難点が二つあり、ARRAYFORMULAとSUMIFSの組合せがうまくいかないのと、途中の小計がどうしても「循環参照しています」となってしまうことです。 色々調べておるのですが、どうしてもうまくいかず、お手上げ状態です。 どなたか詳しい方いらっしゃったら教えていただきたいです。 よろしくお願いします。

  • 並べ替え方法

    A列 B列 C列 D列 E列 品目 単価 個数 (イメージ) りんご 100 50 りんご 100 60 りんご 110 りんご 90 80 りんご 80 みかん 50 30 30 みかん 50 20 みかん みかん 40 40 みかん 60 バナナ 150 30 バナナ 150 40 バナナ 70 バナナ 140 50 バナナ 90 A列 B列 C列のデータがランダムにあるとしてそれを 品目ごと単価ごとに集約して D列 E列に集計するにはどうしたら良いですか? お詳しい方がいらしたら、どうかご教授ください。

  • エクセルの関数で困っています!

    エクセルの関数について困っています。 現在で仕事で下記のような表を作成しています。 日付 品名  区分 個数  価格  合計 1/10 りんご  1  3  100 300 1/23 ばなな  2  2  200 400 2/20 りんご  1  2  100 200 この表でりんごはりんご、ばななはバナナで集計するには SUMIF関数が必要とのことなので区分分けして集計してます。 さらにこれを日付分けして集計したいんです。 次にこんな表を作ろうと思っています。 月日 りんご合計 ばなな合計 1月  300  400 2月  200 3月 4月  そのためにはSUMIF関数にさらにSUMIF関数を重ねて書かないとダメかな?と思っているんですが、どのような数式になるかわかりません。 区分分けしてかつ日付分けして集計したいのです。 この表を例にとって数式を教えていただけると助かります。 どうかよろしくお願い致します。

  • excel関数 間違ったデータをピックアップしたい

    列Aの各セルに、みかn、りんご、バナナ、メロンなどと入っていて、列Bの各セルは、"A"~"F"の人気ランクが入っています。 列A   列B   みかん  A りんご  C バナナ  D みかん  A メロン  C 列C以降にはその他の色々なデータが入っていますが、それはさておき、列AとBだけの関係を見ると、みかんは必ず"A"、りんごは必ず"C"というように、果物別の評価は決まっているはずです。ところが、間違って入力されて、ある行ではみかんが"A"で、別の行ではみかんが"C"だったりしたら、調べて正しい方に統一したいのです。 そこで、ひとつの果物に対応する評価が複数あるものをピックアップしたいのですが、どうすればいいでしょうか。そのほかの集計作業に関数を使っているので、これも関数で出来ればいいかなと思うのですが。

  • ピボットテーブルの集計結果を使って、さらに条件を付けて集計をしたいです

    ピボットテーブルの集計結果を使って、さらに条件を付けて集計をしたいです。 たとえば、このようなピボットテーブルから、 [A]      [B]       [C]       [D]                         1月 Group  Account1   Account2 G0    田中         東京     5         加藤         大阪     2 G1     佐藤        大阪      3 G1    田中         名古屋       A列のGroupをキーにして、D列を集計します。 G0の合計は7で個数は2、G1の合計は3で個数は1、という結果を出すにはどのようにしたら良いでしょうか?

専門家に質問してみよう