• 締切済み

エクセル 項目ごとの合計

エクセルについて質問です。 何の項目があるのか分からない状態で、項目ごとの合計を出せる関数はありますか? 商品の売上明細のデータがあります。 商品名ごとに合計金額をだしたいが、商品名の列に何の商品があるかわかりません。 ピポットテーブルを使ったり、まず何の商品の明細があるかを調べてからSUMIF等使うといった方法以外で、何かありますでしょうか? 毎月商品ごとの売上金額を調べたいのですが、何の商品が売れるか分かりません。 できれば、予め数式を組んでおいて、売上明細データを貼り付けるだけで結果がでるようにしたいです。 商品数が多いため、全ての商品名の行を作るのは避けたいです。 よろしくお願い致します。

みんなの回答

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.6

No.2 です。 大変遅くなり申し訳ありません。 当方、 2016 なので、操作が多少異なるかもしれません。 最近のバージョンは UNIQUE 関数とか便利になって そちらを使うほうが簡単かも。 私は ワークシート関数は ほとんど使えないので VBA で力任せとか、パワークエリで Accessライクな操作の方が好きです。 もう解決しているでしょうから、ざっと説明します。 まず、問題の表をテーブルに変換します。 直接変換して不具合があるといけないので、 表の部分を別シートにコピーし、それをテーブルにします。 もし、テーブルの作成方法がわからなければ こちら。 Excelの表をテーブルに変換する方法 https://dekiru.net/article/12717/ テーブル名を変更する場合は パワークエリに読み込む前に、「名前の管理」で。 で、パワークエリで集計する手順はこちら。 http://officetanaka.net/excel/function/GetAndTransform/12.htm 集計する前にテーブルを読み込むには 図があった方が分かりやすいでしょうから、こちら。 http://officetanaka.net/excel/function/GetAndTransform/07.htm 要は まず、テーブル1の中にアクティブセルを移動して[データ]タブの[テーブルまたは範囲から]をクリックします。 ということです。 集計がうまくいったら、「閉じて読み込む」 これで新しいシートに集計された表ができます。 元のテーブルのデータに変更があったら、 「データ」タブの「すべて更新」クリックで、変更が集計された表に反映されます。 気が向いたらやってみてください。

  • NuboChan
  • ベストアンサー率47% (745/1582)
回答No.5

imogashiさんのシート構成をお借りして、 office2021なら E2:uniquie(rrr[商品名],false,false) F2:sumif(rrr[商品名],e2,rrr[販売高]) E2:F2をコピペして、下方向へ貼り付け

mosumosu3
質問者

お礼

ご回答ありがとうございます! UNIQUIEという関数を初めて知りました。 調べてみると、私が求めていたのはまさにこれです、ありがとうございます! office365を使用しており、できるかどうか、試してみたいと思います。

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

関数でのやり方の1例 例データ Sheet1 B1:C22 A列は商品番号など(略) 商品名 販売高 りんご 65 バナナ 77 みかん 87 ブドウ 76 キウィイ 79 ブドウ 71 キウィイ 69 スイカ 58 りんご 78 バナナ 81 ブドウ 92 みかん 63 パナナ 51 甘夏  73 木下  65 りんご 93 スイカ 79 グレープF 88 キウィイ 82 みかん 85 E2に 式 =IF(COUNTIF($B$2:$B2,B2)=1,B2,"")  F2に 式 =IF(COUNTIF($B$2:$B2,B2)=1,SUMIF($B$2:$B$21,E2,$C$2:$C$21),"") E2:F2の式をF2で+ハンドルを出して、データ最終行まで引っ張る(式複写) ーー 結果  列が乱れて表示されるでしょうが、実際にやってみて、そちらを見て、納得して、ください。 商品名 販売高 商品 販売高 りんご 65 りんご 236 バナナ 77 バナナ 158 みかん 87 みかん 235 ブドウ 76 ブドウ 239 キウィイ 79 キウィイ 230 ブドウ 71 キウィイ 69 スイカ 58 スイカ 137 りんご 78 バナナ 81 ブドウ 92 みかん 63 パナナ 51 パナナ 51 甘夏 73 甘夏 73 木下 65 木下 65 りんご  93 スイカ  79 グレープF 88 グレープF 88 キウィイ 82 みかん 85 === Sheet2などへE,F列が空白の行を除いて、詰める式も作れます。(imogasi方式と自称。略) ・F列での数字で上位5位の商品名を出すとかが関数でもできます。 ・関数式を消して、E,F列データだけで、(手操作の)並べ替えすれば、上位の商品名は出せます。 データはここB,C列をコピーして、シートのA1に貼り付ければ、そのままデータになると思う。 ーーー 問題点 行(データ)が何万、何十万になると式の複写も大変。 見渡す、探す、納得する、のも大変。 途中のミスがあっても気づけない恐れあり。 作業列(E,F列)を使っている。 本来は関数でやるには、荷が重すぎる課題。 どうしますか?

mosumosu3
質問者

お礼

ご回答ありがとうございます! 売上上位の商品をだしたりもしたかったので、そこまで触れていただき嬉しいです。 実際試してみて、確かに数が少なければよいですが、多いとミスをしてしまいそうな不安もあります。

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

商品名入っている列から、重複のない、かつ漏れのない商品名を出す操作があります。「フィルタ」の「詳細設定」の「重複するレコードは無視する」です。 これを言い出さないところを見ると、質問者はエクセルの経験が少ないと思います。 ーー 商品別の売上合計で、上位10位を出すとしても、まだ商品別売り上げ合計もまだ出せてないので、そういう機能(ピボットや他のソフト)や中間結果をを使わざるを得ないです。 しかし初心者でも、作業列や作業中間データを作る、(そういう回答を)好まない質問者を多く見てきました。ここでは全商品の商品別の売上合計表。 また操作を使う、回答を軽んじる、初心者も多いようです。 小生は、エクセルは関数の学(学び)の前に操作の学だと思いますが。 == まず商品名の「重複のない、かつ漏れのない商品名」をリストすることから始めるべきです。社内に常識的に、そういう上位販売高商品の紙資料や、経験による、記憶でもあれば、それを手入力して作っても良いでしょう。 そうすればその商品名に基づき、SUMIFSなどで商品の売り上げ高(や個数)は、関数で出せます。あとは売上高に対し、LARGE関数などで売上などの順位が出せます。 >商品数が多いため、全ての商品名の行を作るのは避けたいです。 ということは、商品数の面から、エクセルのようなソフトでは無理ということです。「何でもエクエル」でなく、エクセルでも、その進んだ機能(ピボットやパワークエリ)やアクセスなどデータベースやその他市販ソフト(販売管理のような)を勉強して使うべきなんだと思う。 手足を縛って水中を泳ぐ、古式泳法のようなことをやろうとしている、ように思えます。ビジネスではそれは時間・コストの無駄です。

mosumosu3
質問者

お礼

ご回答ありがとうございます! おっしゃる通り、エクセルの経験はさほどないです。 ただ、フィルターで重複を除けるのは分かっています。 ピポットテーブルも、個人的にはすごく重宝しています。 今回は誰でもデータを貼り付けるだけで結果をだせるようにしたいという考えから、何かいい方法はないか質問させて頂きました。

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.2

パワークエリは正にこのためにあるような機能です。 興味があれば やり方を説明しますが。

mosumosu3
質問者

お礼

ご回答ありがとうございます! パワークエリ、検索してみましたが難しそうでした… もしよろしければやり方教えて頂きたいです。 よろしくお願い致します。

  • Mathmi
  • ベストアンサー率46% (54/115)
回答No.1

商品名が既に分かっているなら、それを予め入力しておいて、SUMIFで売上明細データから合計額を抽出し、フィルタで金額が0の項目を除外するのが一番楽だとは思います。 >何の商品の明細があるかを調べてからSUMIF等使うといった方法以外 >データを貼り付けるだけで結果がでるようにしたい 貼り付けたデータの内、商品明細を自動で出力する方法なら以下のようなやり方があります。凄い力技ですが。 売上明細の商品名の列を仮にA列とします。以下、列は任意のものに変更して下さい。 B列に[=countif(A$1:A2,A2)]のように、その行の商品名が今までに何個あるかを計算します。 C列に[=IF(B2<>1,0,SUMIF(B$1:B2,"=1"))]のように、B列が1=最初に出てきた何番目の商品名かを計算します。 D列に1から順に商品の種類分以上の数を昇順で入れていきます。 E列に[=MATCH(D2,C:C,0)]のように、n個目の商品名がある行番号を計算します。 F列に[=IF(ISERROR(E2),"",INDEX(A:A,D2))]のように、E列で計算した行番号の商品名を取得します。

mosumosu3
質問者

お礼

ご回答ありがとうございます! 貼り付けるだけで結果を出すには、ややこしい手順を踏まないといけないのですね。 詳しく教えて頂き、感謝いたします。 とりあえず、フィルターで0を除外の方法でやってみようかなと思います。

関連するQ&A

  • Excelの条件検索による合計計算

    ExcelでA列に日付、B列に商品名、C列に売上金額を入れて、日々の売上管理をしています。最大でも500行と仮定します。 B列のりんごの合計、みかんの合計など商品ごとの合計を算出したいと考えています。B列の商品ごとの合計です。 この場合には、どの様な関数・数式を使用するのでしょうか? 宜しくお願いいたします。

  • Excelで2列のキーワードからのデータを合計するには?

    A列に日付、B列に支店名、C列に商品名、D列に売上金額が売上ごとに入ってます。 ある支店の売上の合計にはSUMIF(支店名)を使っていますが、ある支店の(且つ)ある商品の売上の合計はどうやって計算すればいいのでしょうか?フィルターやピボットテーブルでなく関数を使いたいのですが。 初歩的な質問ですみませんがよろしくお願い致します。

  • 月別、項目の合計金額を

    月別、項目の合計金額を いつもお世話になります。 WINDOWS XP EXCELL2003 例えば 年間の合計の数式はなんとか、やっとできました。 C4 =SUMIF(C$20:C41,B4,D$20:D41) ただ ただD4 E4 F4 ~ O4 等月別 項目の無合計金額を出すのに困っています。 D4 D5 等にどのような数式を入れればいいかご指導願えれば幸です。 宜しく御願いします。

  • Excelで条件に合うデータをピックアップして合計を求めたい

    下記のような条件で合計を求めたいのですが、 SUM関数やSUMIF関数では、求めている合計が得られません。 例) 行/列 A   B    C  1|  No. 金額   氏名 2|  1  200,000  A 3|  1  200,000  B 4|  1  200,000  C 5|  2  150,000  A 6|  2  150,000  D 7|  3  180,000  B 8|  3  180,000  D 9|  3  180,000  E 10| 小計  上記のようなデータがあります。 B列には、Noごとに、それぞれ同じ金額が重複して入力してあります。 ここから、Noの最初の金額である200,000+150,000+180,000=530,000 という合計を10行目に求めたいのです。 現在は、自分でNoを確認しながら、その都度、 合計したいセルを選択して合計を求めているのですが、 データ数が多いため、何か別の方法がないかと思案しております。 どなたか、アドバイスの程、宜しくお願いします。

  • Excel で 複数条件の合計を出したい。。。

    どなたかご存知の方がいたら教えてください!!!(汗) 下記のようなデータがあります。 列は時系列でデータがどんどん増えていきます。 例)A列=1月  1行目=Xの時系列データ   B列=2月  2行目=Yの時系列データ   C列=3月  3行目=Xの時系列データ    ・      4行目=Zの時系列データ    ・   A列のXのデータの合計をしたい場合は、SUMIF関数を 使えばよいと思うのですが・・・ あるセルに○月と入力するとそのセルの日付を参照して、 その月のX条件だけを満たす合計を出す場合にはどのような関数を使えばよいのでしょうか? もしくは、どのように関数を組合せばよいのでしょうか? なかなかうまく説明できなかったのですが、 よろしくお願いします!!!

  • エクセル 異なる範囲の集計(合計)

    誰かアドバイスをお願いします。 エクセルで下記の様な異なる行数(範囲)を自動集計させたい場合はどうすればよろしいでしょうか?       A      B      C     D        E      日付    注文NO  金額   注文金額計  日別注文金額合計 1   5月1日     1     50     150       250 2                  50       3                  50                4             2    50     100 5                  50                    6   5月2日     3     50     50        150 7             4     50    100 8                   50                                            やりたい事は、D列へ注文金額計に注文NO別の合計金額を集計させる事(注文NOごとの一番上の行のみです。)  と E列へ日別の注文金額合計を集計させる事です。(日別の一番上の行のみに表示)   sumif関数を使えばうまく行きそうなのですが、問題が2つあります。 (1)集計条件の日付や注文NOは、重複している場合は、一行のみ表示の仕様です。(他ファイルからデータを貼りける為、その様な仕様になり、極力入力する事は避けたいです。) (2)合計範囲の行数が一定ではないので出来ればEやD列の全てのセルに関数なりを設置し、一番最上行のみに結果を表字したい。例えばsumif関数をE,D列全ての行に設定してしまうと同じ集計結果が何行にも渡って表示されてしまうのは避けたい。(上の例でいえばE列に150が何行も表示されてしまう。 かといって重複行の最上行のみに関数を設定するのは、一行ずつの作業になってしまう為、避けたい。 何かいい方法がないでしょうか?   個人的には、関数の方がやりやすいのでいいのですが、マクロやVBEでもあれば教えて頂けますでしょうか?

  • 月別、項目の合計金額を その2

    月別、項目の合計金額を その2 この前と同じですか添付画像を入れたのですが入っていませんでした。 追加になり済みません。 いつもお世話になります。 WINDOWS XP EXCELL2003 例えば 年間の合計の数式はなんとか、やっとできました。 C4 =SUMIF(C$20:C41,B4,D$20:D41) ただ ただD4 E4 F4 ~ O4 等月別 項目の無合計金額を出すのに困っています。 D4 D5 等にどのような数式を入れればいいかご指導願えれば幸です。 宜しく御願いします。

  • sumifのように条件に見合う合計を「数値」ではなく「データ(セル)」の合計を集計したいのですが

    SUMIFを使って合計範囲の数値の合計を求めるように、合計範囲の「データが入力されているセル」の合計を求めたいのですが、何かいい関数はありませんでしょうか? 言い換えると、COUNTAを使ってセルの個数を求める場合に検索条件をSUMIFのように特定の検索条件を指定できる関数です。 いろいろ探しましたがうまい方法が見当たりません。 使用方法としては、各曜日ごとのメニュー別の売上金額の合計と人数の合計を求めようとしています。 ワークシートに入力されてるデータは ・各曜日 ・顧客名 ・メニューと支払われた金額 です。 SUMIFを使って、検索条件に各曜日をあてはめ、曜日ごとのメニュー別売上は集計できました。 金額が入力されているセルを合計すれば各メニューごとの人数まで集計できるはずなのですが、SUMIFが「数値」しか集計できない為にそれに代わる関数を探しています。 どうぞよろしくお願い致します。

  • 表からの合計

    お世話になります、集計についてお教えください。 上段のような表があります。そしてこれを下段のような数字を合計した表に組み替えたいと思います。 この下段の表の黄色い部分に入れる数式を考えています。 上段の表に合計を示す行と列を挿入すればsumifを活用することで出来るかと思うのですが、できれば上段の表は生データとして触らないようにしたいのです。 また、実際のデータはかなりの行と列の数となっており、構成要素も多岐にわたるので手作業を加える相対参照などは避けたいと思っています。 加えて、今後の活用の点からもピボットなどの機能ではなく、関数を組み合わせた数式で処理したいと思っています。 どのようにすればよいかお教えくだされば幸いです。 A A B B あ 1 2 3 4 あ 5 6 7 8 い 9 10 11 12 い 13 14 15 16 い 17 18 19 20 A B あ い

  • Excel関数2つの項目が一致する場合・・・

    誰か助けて下さい。 EXCEL2002を使い、3つの項目が一致した場合その合計を出す方法。 数百行に渡り A列には、日付 B列には、商品項目コード c列には、金額 日付が同じもの同士で、尚且つ商品項目コードが同じ時の金額の合計を出したいのですが どの関数を使っていいのかわかりません。 どうぞ、おしえてください。

専門家に質問してみよう