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

このQ&Aのポイント
  • Excel2010を使用して、指定した条件で元リストを集計する関数について質問です。
  • 特定の日付と項目を結合した値がユニークであり、元リストの条件指定の引数を使用せずに集計したい場合にどの関数を使用すればよいか教えてください。
  • 質問文の環境や具体的な要件について説明しています。集計に適した関数の情報をお知りになりたいようです。
回答を見る
  • ベストアンサー

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

こちらの識者の方々にはいつもお世話になっています。 関数の質問です。 環境は下記になります。 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の値によって取得する値を変えたい) このような場合どのような関数を使えばよいでしょうか? 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1619/2458)
回答No.3

=IFERROR(INDEX(INDIRECT("$A$" & MATCH($H2,$A$2:$A$13,0)+1 & ":$F$13"),MATCH(I$1,INDIRECT("B"&MATCH($H2,$A$2:$A$13,0)+1&":$B$13"),0),MATCH($H$1,$A$1:$F$1,0)),"") I2に上記の式でいかがでしょう。

rihitomo
質問者

お礼

できました! INDIRECT関数はVBAの変数のように使うことができるんですね。 条件を全て満たし、かつ関数のみで実現できているこの回答をベストアンサーとしたいと思います。

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

I2=SUMIFS(INDIRECT($H$1),$A$2:$A$13,$H2,$B$2:$B$13,I$1) ※$C$2:$C$13の範囲を$C1の値で名前付けが必要です。 http://kokoro.kir.jp/excel/name-make.html

rihitomo
質問者

お礼

できました! ありがとうございます。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

ピボットテーブルで作ってみてください。人ごとにシートを作るには作ったピボットテーブルから引用してはいかがでしょう。

rihitomo
質問者

お礼

回答ありがとうございます。 ピボットで可能であることは理解していますが、関数で実現したいのです。

関連するQ&A

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

    こちらの識者の方々にはいつもお世話になっています。 関数の質問です。 環境は下記になります。 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=りんご個数 というような集計用の列を作成することは可能です。 このような場合どのような関数を使えばよいでしょうか? もし可能であれば集計用の列を追加した場合としない場合、両方の関数を教えていただければ幸甚です。 (集計用の列をどのような値にするかも併せて教えていただけますでしょうか) 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • Excel関数 2つの条件で集計するには?

    エクセル関数についての質問があります。 A列に赤・黄・青のいずれか B列に○・△・□のいずれか C列に数値のデータが入力されているとします。 このとき、A列が赤且つB列が○となっている 数値を集計する関数もしくは方法はありますか? SUMIFでは条件は一つしか使えませんよね? 現在はC列の数値を、B列が○のときはD列に B列が△のときはE列に、B列が□のときはF列に 表示させるようにし、B列をキーにD~F列の数値 をそれぞれ集計しています。 件数が多いときはめんどうなので、いい方法が ありましたら、教えてください。 よろしくお願いします。

  • エクセルの関数でピボットテーブルのような集計

    以下のようなテスト結果の表(DB)があります。 列:A,B,C,D,E,F,G,H,I,J,K,L,M,N,O   ,,,,1700,小野,,,,2,,0,A,B,0   ,,,,1200,小野,,,,4,,1,C,0,C   ,,,,1700,柴田,,,,5,,4,A,B,0   ,,,,1400,矢野,,,,3,,4,B,0,A   ,,,,1200,伊藤,,,,4,,1,C,D,0,   ,,,,1000,田村,,,,4,,3,D,C,A F列には、名前がフルネームで入力されています。同一人物が複数あります。 J列には、数字が1,2,3,4 L列には、A,B,C,D,E M列には、A,B,C,と数字の0 N列には、A,B,C,と数字の0 O列には、A,B,C,と数字の0 が、それぞれ入力されています。 このDBを元に L,M,N,Oのデータの個数を名前別に以下のように集計をしたいのです。      J , L , M ,N,O 名前,1,2,3,4,計,A,B,C,D,E,計,A,B,C,0,計,.... 小野, ピボットテーブルで考えましたが、5回行わねばならず、結合も考えると関数で何とかならないものか と質問させていただきました。 別に関数でなくても、もっと有効な方法がありましたらそれで結構です。御教示下さい。

  • どんな関数がありますか?

    エクセルの関数で条件にあった値を合計するSUMIFというのがありますが、 2つの条件を満たす値を合計するにはどうしたらいいのですか? 例えば、A列に複数の洋服のブランド名と、B列にアイテム、C列に金額を それぞれ重複して入力している表を元に、ブランド別にそれぞれのアイテムの合計金額を集計したいのです。 集計する表は、列の項目がブランド名、行がアイテムとなっています。 どうかよろしくお願いします。

  • EXEL2000 複数条件で集計を求める関数式

    検索範囲のA列における検索条件が[A5001]セルと同じ値、B列が[B5001]セルと同じ値であるもののC列[C1:C5000]の合計は =SUMPRODUCT((A1:A5000=A5001)*(B1:B5000=B5001)*C1:C5001) では、検索範囲A列が検索条件が[A5001]セルと同じ値の文字列を含むもの、B列が[B5001]セルと同じ値であるもののC列[C1:C5000]の合計をする場合に (たとえば、リストの A列データの値は、青森リンゴ、長野リンゴ、和歌山ミカン等、 B列データの値は、大、中、小等、 C列データの値は、その売上高、 検索条件[A5001]セルの値が[リンゴ]、 [検索条件B5001]セルの値が[大]である場合に、 リンゴという文字列が含まれており且つ大であるものの売上合計金額を求める) =SUMPRODUCT((A1:A5000="*"&A5001&"*")*(B1:B5000=B5001)*C1:C5001) を試しましたがだめでした。 これとは別に、 =SUMPRODUCT(COUNTIF(A1:A5000,"*"&A5001&"*")/COUNTIF(A1:A5000,"*"&A5001&"*"))*(B1:B5000=B5001)*C1:C5001) も試しましたがだめでした(数日前にこちらで教えていただきまして、行数が10行程度の仮のリストで試しましたらうまくいきましたが、実際のリスト(5000行以上)では#VALUE!が返ります。リストは「値のみ貼付」で得られたデータのみが入っています) このリストで、5001行以降に検索条件が多数並んでいます。 EXEL2000で可能な関数式を教えて下さい。よろしくお願いします。

  • EXCELのDSUM関数で集計条件に日付を入れると数字が消える

        B列      C列     D列   E列      F列      G列 1行  日付      区分    金額   集計する条件 2   2000/1/1   A社   1000    区分     日付      日付 3   2000/1/10    B社    500   A社    >=2000/1/1  <2000/2/1 4   2000/1/15    A社    300    5   2000/2/5   A社     200    集計結果 6                        =DSUM(B1:D5,3,E2:G3) 上記のような表をEXCELで作成しました そのうちA社の1/1~1/31の金額をDSUM関数を利用して集計したく 上記のようにDSUM関数に引数を入力しました しかし集計条件が区分のみ(E2:E3)だとA社の2/5までの合計額1500が反映するのですが、日付を入れた途端に0になってしまうのです ちなみに、一例として日付→商品区分に直して日付の代わりに 「機械」「部品」といった文字を入力してみると ちゃんと条件通りの集計をしてくれます 日付の入力のしかたに間違いがあるのでしょうか? テキスト見ながらちゃんとやってると思いこんでるだけで 落とし穴にはまってるのだと思います 是非良きアドバイスをお願いします  

  • INDIRECT関数が上手く使えません。

    集計シートF334セルに、「=SUMIF(貼付!E$2:E$300,A334,貼付!K$2:K$300)」と 入力して、貼付シートのE2:E300の範囲から、集計シートA334の値を探して、 貼付シートのK2:K300の値を合計して、集計シートF334セルに表示させています。 集計シートF338セルに「K」と入れて、集計シートI338セルに「=F338&2&":"&F338&300」と 入力して、集計シートI338に「K2:K300」と表示させています。 貼付シートで必要な列が、K列からJ列・H列など月ごとに変わるため、 INDIRECT関数を使用して、集計シートF338セルに入力した値から集計シートF334セルの 値を更新しようと思っています。 そこで、集計シートF334セルの値を次のように変更しましたが、求めている結果が得られません。 0と表示されます。どこが誤っているのか、教えていただけないでしょうか。 「=SUMIF(貼付!E$2:E$300,集計!A334,INDIRECT("集計!"&I$338))」

  • [関数] 複数条件を指定し複数列の範囲から集計する

    こちらの識者の方々にはいつもお世話になっています。 関数の質問です。 タイトルが分かりづらくて申し訳ありませんが、詳細は下記ご参照ください。 環境は下記になります。 OS=windows7 pro 64bit Office=Excel2010(14.0.7128.5000) ・やりたいこと 下図のA1:E8のようなリストがあります。 H1:H4に指定の条件で果物がいくつあるのか計算したいのですが、集計の範囲にはC1:E8ないしリスト全体を指定したいのです。(D1:D8にしたくない) 自分でもSUMPRODUCT(SUMIFS)関数やINDEX関数で考えてみたのですが、完成には至っていません。 この場合、どのようなコードが適していますでしょうか? 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • 日付から集計する関数をおしえてください

    A3 2024/3/16と入力されていて表示は3/16となっています A4 2024/3/18と入力されていて表示は3/18となっています K3 100 L3 200 M3 300 K4 400 L4 500 M4 600 という数字がはいっているときに H20は2024/4/21と入力されていて表示は4/21となっています K20に入れる式を教えてほしいです 条件は、A3 A4 の3月という部分を条件に 集計がしたいです。 H20はAの数字の翌月の数字を自分で入力します。 Aは3月の次に4月、5月と日付が続きます。 その中で、Hのセルにいれた月の前月の数字のKLMの集計をしたいです。 H20が4月のとき A3 3月なのでそのうちのK+Mを集計 A3 3月なのでそのうちのLを集計 この2つの式をおしえてほしいです。 うまく説明できていないかもしれませんが、よろしくお願いします。

  • SUMIF関数の集計が上手くいきません。

    「集計」シートのA列に得意先コード・O列に集計欄 「貼付」シートのE列に得意先コード・J列に集計欄があります。 なお、「貼付」シートのE列は重複する場合もあります。 「集計」シートのA列の値を、「貼付」シートのE列から探して、その行のJ列の数値の合計を 「集計」シートのO列に集計したいと思っています。 「集計」シートのA406が「B」で「貼付」シートのE200とE300が「B」で、「貼付」シートのJ200が「150」 ・J300が「250」であれば「集計」シートのO406に「500」(150+250)を表示させたいと思っています。 なお、「貼付」シートのE列には他に「B」の値がないものとします。 そこで、O列に次の関数を入れました。 「=SUMIF(貼付!E:E,A403,貼付!J:J)」 すると、(O4:O405)の範囲では、きちんと「貼付」シートの、各得意先コード別の合計が表示されるの ですが、O406の値が「0」と表示されます。 数式は合っていると思うのですが、何が誤っているのか、わかるかたはいらっしゃいますか? 406行目がA列に得意先コードが入っている最終行であることも関係ありますか? あるいは、どのように集計したら良いのか、教えていただけると助かります。

専門家に質問してみよう