web-dev-qa-db-ja.com

Excelで列をグループ化して合計するにはどうすればよいですか。

Excelスプレッドシートで値を「グループ化」する方法を見つけようとしています。

次の例を考えてみましょう(これは私が私のレストランで使う在庫シートです:)

Sample Spreadsheet

スプレッドシートの右端に、売上原価という列があります。

各カテゴリの総COGS値を考え出したいと思います。

これはExcelで可能ですか?さらに、最初のワークシート(図に示されているもの)が影響を受けないように、別のワークシートで実行したいと思います。

何か案は?

ありがとうございます。

137
Ian P

あなたが使いたい機能は、 ピボットテーブル です。あなたがその機能の使い方を学んだら、ほんの数クリックであなたが望むことを正確にやるのは本当に簡単です。

85
Scott Obert

小計機能でこれを行うこともできます。

  1. Excelのリボンツールバーの[データ]タブをクリックします。
  2. [並べ替え]ボタンをクリックして、カテゴリで並べ替えます
  3. [小計]ボタンをクリックし、必要に応じてダイアログに入力して[OK]をクリックします。

例えば...

が変わるたびに:カテゴリ

関数を使用します。Sum

小計をに追加します。売上原価

54
rob

たとえば、1週間目に、食料品のようなアカウントの総COGSを探しているとします。

sumifはそのデータを思いつくための最も簡単な方法です。あなたの写真から取った例:

=sumif(d2:d?,"grocery",j2:j?)

シート全体が見えないので、疑問符を付けました。アカウントデータがある列D全体を選択します。 D2からD?、毎週の使用量の列J2からJ?と同じ。

式は、テキストの食料品のD列を調べます。それが存在する場合、Wordの食料品を含むD列に対応するJ列のセルを追加します。 (またはあなたがそれを探すためにあなたが式に入れたどんなテキストでも)

14
JLewis

最も簡単な方法は、Excelのソート操作とそれに続くExcelの小計操作です。

ピボット操作のようにデータ全体のレイアウトを変更することなく、目的のデータを取得できます。

ソート

  • クリック データ タブ(またはキーボードのAlt-Aを押す)
  • クリック ソート (またはキーボードのSを押す)
  • ポップアップウィンドウのメインエリアにある[並べ替え]の横にあるドロップダウン矢印をクリックします。
  • これはあなたがグループ化したいものなので、「カテゴリ」を選択してください。
  • [OK]をクリックしてください。

小計

  • クリック データ タブ(またはキーボードのAlt-Aを押す)
    • クリック 小計 アイコン(またはキーボードのBを押す)
    • データのソート、読み込み、 あなたが自然な英語を読んでいたように小計ポップアップを埋めなさい
       
      カテゴリが変わるたびに(ドロップダウン矢印をクリックして選択)
      使用機能
       Sum(ドロップダウン矢印をクリックして選択)
      追加[販売価格]の小計(カテゴリごとに合計したい列を選択します)
       
      
         Click OK!
      

  • 5
    Bharat Patel

    Excel 2013では、 "グループ化"オプションがあります。

    1. あなたのテーブルを選択してください。
    2. [データ]タブに移動します。
    3. 構造/グループ化をクリックします。

    下のスクリーンショットを見てください、残念ながらそれはドイツ語です - しかしアイコンはあなたがそれを見つけるのを助けるでしょう。

    Gliederung > Gruppieren

    4
    soc1c

    これをピボットテーブルで行うには、

    1)すべてのデータを選択する(列ラベルを含む)
    2)挿入>ピボットテーブル
    3)グループ化するディメンションを列または行の領域にドラッグします
    4)メトリックをドラッグして値エリアに合計します

    enter image description here

    3
    AlexG

    私はいつもこれをvbaでやっています。私はオフィス95 'から同じ方法を使用したことを確信していますが、列の配置を少し変更しました。変数を定義しなければ、より少ない行数で実行できます。通過する行がたくさんある場合や、グループを定義するために必要なものがもっとある場合は、より早く実行できます。

    私は「グループ」が2〜5個のセルに基づいている状況に遭遇しました。この例では1つの列のみを見ていますが、誰かが時間をかけてプレイすれば簡単に拡張できます。

    これは3列を想定しており、group_values列でソートする必要があります。マクロを実行する前に、group_values列で比較する最初のセルを選択してください。

     'group_values、some_number、empty_columnToHoldSubtotals 
    '(ものはここに入ります)
     'cookie 1 empty 
    ' cookie 3 empty 
     'cake 4 empty [ [ハット0は空
    ]ハット3は空[
    ] ... [
    ] '停止
    
     Sub subtotal()
     'は、2つの文字列と1つの小計カウンターを定義します。
     Dim thisOne、thatOne As String 
     Dim subCount As Double 
     [。 thisOne = ActiveCell.Value 
     thatOne = ActiveCell.Offset(1、0)
     subCount = 0 
     
     '停止値に達するまで続くループを設定します。
     While(ActiveCell.Value <> "stop")
     
    'は、セルの値をその下のセルと比較します。 [.____. If(thisOne = thatOne)]セルが等しい場合、
     'サブカウントにサブカウントが追加されます
     subCount = subCount + ActiveCell.Offset(0、1)。値
     
     'セルが等しくない場合は
    'サブカウントが書き込まれ、小計がリセットされます。
     ActiveCell.Offset(0、2).Value = ActiveCell.Offset(0、1)。値+ subCount 
     subCount = 0 
     
     End 
     
     'の場合、次のセルを選択します
     ActiveCell.Offset(1、0)。[。]を選択します。アクティブセルとその下のセルの値を変数に割り当てます。thisOne = ActiveCell.Value 
     thatOne = ActiveCell.Offset(1、0) 。[]。Wend 
     
     End Sub 
    
    1
    user232181