- ベストアンサー
エクセル 複数の条件を満たした場合の集計方法
列Aに月(1~12)、列Bに担当者(Aさん・Bさん)、列Cに作業内容(通常業務・特別業務)、列Dに料金(任意の数値)、列Eに合計金額(1行目からの合計)とある場合に、たとえば9月に担当者”Aさん”が通常業務で作業をした場合の合計のような、月ごと、担当者ごと、作業内容ごとの集計がしたいのですが、どのような式で記述すればよいのでしょうか? お願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
たぶん、お求めのことは、ピボットテーブルが 1番手っ取り早いと思います。 ピボテを解説するのは結構面倒なので、とりあえず 試行錯誤してみませんか。 その表内にセルを移動しておき、 「データ」「ピボットテーブルとピボットテーブルグラフレポート」を選択します。 その後、たぶんデフォルトのままでよいので、次々 と進んでいきましょう。 1/3のウィザードは、どちらも一番上。 2/3のウィザードは、たぶんそのまま 3/3のウィザードは、新規のシート(デフォルト)でOKです。最後は完了。 そうすると、表と、「ピボットテーブル」が表示されていると思いますので 月ごとだけであれば、「月」をマウスで「行のフィールド」にドラッグして離します。 担当者であれば、同じです。 月と担当者をクロスして集計して、合計金額を集計したければ、行に担当者、列に月、「ここにデータアイテムをドラッグします」という部分に、「合計金額」をドラッグします。 これであっという間に表が作られます。 もし、関数で集計するのであれば、 「DSUMや、DCOUNT,sumif,countif」関数などが使えます。 頑張ってみて下さい。
その他の回答 (5)
>「ピボットテーブルのフィールド名は正しくありませんピボットテーブルを作成するにはラベルの付いた列でリストとして編成されたデータを使用する必要がありますピボットテーブルのフィールド名を変更する場合は、フィールドの新しい名前を入力する必要があります」 元データの一番上には(A1やB1など1番)、列のタイトル(月、担当者などの語)を入れてありますか? これがないとダメというメッセージのようですが・・・。
お礼
その通りでした、グループとアウトラインの設定でグループ化した列に名称が無いためのエラーだったようです、ありがとうございました
- yoshimi1968
- ベストアンサー率35% (18/51)
ピボテの基本については、下記のページが わかりやすいかもしれません。 (いくつか検索して、比較しただけですが・・・)
- yoshimi1968
- ベストアンサー率35% (18/51)
こんばんわ。ご苦労様です。 「ピボットテーブルのフィールド名は正しくありませんピボットテーブルを作成するにはラベルの付いた列でリストとして編成されたデータを使用する必要がありますピボットテーブルのフィールド名を変更する場合は、フィールドの新しい名前を入力する必要があります」 ということですが、元になるデータはきちんとした形式でしょうか。 ちょっと実例が思い浮かびませんが、 A1には月 B1には担当者、C1には作業内容、D1には、料金、E1には合計金額とういことですね。 例えば、F列になにか数字や文字が入っていながら、フィールド名が無いとか、1の行のフィールド名が重複しているものが無いのか、などを確認しましょう。 あとは、ウィザードの2/3で、きちんとデータベース(フィールド名とデータ)が指定されているかを確認していただけませんか。 ではまた。
お礼
試行錯誤を繰り返し何とか解決できました、本当にありがとうございました。
ピポットテーブルを使うのが簡単だと思います。 表全体を選択して、「データ」-「ピポットテーブルとピポットグラフレポート」を選択。 出てくるメッセージに沿って、「OK」 項目のリストが出てきますので、 「月」をドラッグして、列の所にもってきます。 「担当者」をドラッグして、行にもってきます。 「作業内容」をドラッグして、行に持って行きます。 「料金」をドラッグして、表の真ん中に持って行きます。 できあがった表の左角をダブルクリック(多分「データの個数/料金」となっていると思います) 「集計の方法」を「合計」に変えます。 わかりにくいかと思いますが、試しながらやってみてください。
- mshr1962
- ベストアンサー率39% (7417/18945)
方法1 =SUMPRODUCT(($A$1:$A$100=9)*($B$1:$B$100="Aさん")*($C$1:$C$100="通常業務")*($D$1:$D$100)) 各列の条件はセル参照でも可 方法2 月 担当者 作業内容 9 Aさん 通常業務 の検索条件の表を作成 =DSUM(元の表の範囲,"料金",上記の表の範囲) 表の内容で結果が変わります。複数の設定も可 OR条件なら行の下に追加 AND条件なら列(項目含む)を追加する。 方法3 「データ」「ピボットテーブルと...」で集計する。
補足
早々のご回答ありがとうございます。ただ今帰宅して記述の通りにやってみたのですが、ウィザードの3/3で 完了を押すと、「ピボットテーブルのフィールド名は正しくありませんピボットテーブルを作成するにはラベルの付いた列でリストとして編成されたデータを使用する必要がありますピボットテーブルのフィールド名を変更する場合は、フィールドの新しい名前を入力する必要があります」と出てしまいます、ピボットテーブルは今まで使用したことが無かったのですが、これを気に覚えたいと思い、現在自分でも調べていますが、もしお分かりの場合にはご回答お願いいたします。