webentwicklung-frage-antwort-db.com.de

Wie kann ich eine Spalte in Excel "gruppieren" und summieren?

Ich versuche herauszufinden, wie man in einer Excel-Tabelle nach Werten gruppiert.

Angenommen, das folgende Beispiel (dies ist eine Bestandsliste, die ich in meinem Restaurant verwende :)

Sample Spreadsheet

Ganz rechts in der Tabelle befindet sich eine Spalte mit dem Namen "Cost of Goods Sold".

Ich möchte in der Lage sein, eine Gesamt-COGS-Zahl für jede Kategorie zu finden.

Ist das in Excel möglich? Außerdem möchte ich es in einem separaten Arbeitsblatt tun, damit das erste Arbeitsblatt (was abgebildet ist) nicht betroffen ist.

Irgendwelche Ideen?

Vielen Dank!

137
Ian P

Die Funktion, die Sie verwenden möchten, ist Pivot Tables . Es ist wirklich einfach, mit nur wenigen Klicks genau das zu tun, was Sie wollen, sobald Sie gelernt haben, wie Sie diese Funktion verwenden.

85
Scott Obert

Sie können dies auch mit der Funktion Zwischensumme tun.

  1. Klicken Sie in der Multifunktionsleiste von Excel auf die Registerkarte Daten
  2. Klicken Sie auf die Schaltfläche Sortieren und sortieren Sie nach Ihrer Kategorie Spalte
  3. Klicken Sie auf die Schaltfläche Zwischensumme und füllen Sie das entsprechende Dialogfeld aus. Klicken Sie dann auf OK

Zum Beispiel...

Bei jeder Änderung in: Kategorie

Verwendungsfunktion: Summe

Zwischensumme hinzufügen zu: Verkaufskosten

54
rob

Ich gehe davon aus, dass Sie den Gesamt-COGS für ein Konto wie Lebensmittel beispielsweise für Woche 1 suchen.

sumif ist der einfachste Weg, um diese Daten zu erhalten. Beispiel aus Ihrem Bild:

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

Ich habe die Fragezeichen gesetzt, da ich nicht das ganze Blatt sehen kann. Sie würden die gesamte Spalte D auswählen, in der Sie Kontodaten haben. D2 bis D ?, Gleiches gilt für die Spalte J2 bis J? Der wöchentlichen Verwendung.

Die Formel sucht in der Spalte D nach dem Textlebensmittelgeschäft. Wenn sie vorhanden ist, werden die Zellen in Spalte J hinzugefügt, die den Spalten D mit dem Wortlebensmittelgeschäft entsprechen. (oder nach welchem ​​Text Sie in der Formel suchen)

14
JLewis

Der einfachste Ansatz ist möglicherweise eine Excel-Sortieroperation, gefolgt von einer Excel-Zwischensummenoperation.

Es liefert das, was Sie suchen, ohne das gesamte Layout Ihrer Daten wie bei einer Pivot-Operation zu ändern.

Sortierung

  • Drücke den Daten Tab (oder drücke Alt-A auf der Tastatur)
  • Klicken Sortieren (oder drücke S auf der Tastatur)
  • Klicken Sie im Hauptbereich des Popup-Fensters auf den Dropdown-Pfeil neben "Sortieren nach".
  • Wählen Sie "Kategorie", da Sie nach dieser Kategorie gruppieren möchten.
  • OK klicken!

Zwischensumme

  • Drücke den Daten Tabulator (oder drücken Sie Alt-A auf der Tastatur)
    • Klicken Zwischensumme Symbol (oder drücken Sie B auf der Tastatur)
    • Jetzt, da Ihre Daten sortiert sind, lesen und füllen Sie das Zwischensummen-Popup so aus, als würden Sie natürliches Englisch lesen:
       Bei jeder Änderung in der 
       Kategorie (Klicken Sie auf den Dropdown-Pfeil und wählen Sie diesen aus) 
       Verwenden Sie die Funktion 
       Summe (Klicken Sie auf den Dropdown-Pfeil und wählen Sie diesen aus) 
       Hinzufügen Zwischensumme zu 
       Kosten des verkauften Gutes (Wählen Sie die Spalten aus, die Sie für einzelne Kategorien zusammenzählen möchten) 
       
      
         Click OK!
      

  • 5
    Bharat Patel

    In Excel 2013 wird es eine Gruppierungsoption geben.

    1. Wählen Sie Ihren Tisch.
    2. Gehen Sie zur Registerkarte Daten.
    3. Klicken Sie auf Struktur> Gruppierung.

    Siehe Screenshot unten, leider ist es Deutsch - aber die Symbole helfen Ihnen, es zu finden.

    Gliederung > Gruppieren

    4
    soc1c

    Um dies mit einer Pivot-Tabelle zu tun :

    1) Wählen Sie alle Daten aus (einschließlich der Spaltenbeschriftungen)
    2) Einfügen> PivotTable
    3) Ziehen Sie die Dimension zum Gruppieren nach in den Spalten- oder Zeilenbereich
    4) Ziehen Sie die Metrik zum Summieren in den Wertebereich

     enter image description here

    2
    AlexG

    Ich mache das die ganze Zeit mit vba. Ich bin mir ziemlich sicher, dass ich die gleiche Methode seit Office 95 'verwendet habe, mit geringfügigen Änderungen für die Spaltenplatzierung. Dies kann mit weniger Zeilen geschehen, wenn Sie die Variablen nicht definieren. Das geht schneller, wenn Sie viele Zeilen durchgehen müssen oder mehr Dinge, mit denen Sie Ihre Gruppe definieren müssen.

    Ich bin auf Situationen gestoßen, in denen eine 'Gruppe' auf 2-5 Zellen basiert. In diesem Beispiel wird nur eine Spalte betrachtet, es kann jedoch problemlos erweitert werden, wenn sich jemand die Zeit nimmt, damit zu spielen.

    Dies setzt 3 Spalten voraus und Sie müssen nach der group_values-Spalte sortieren. Wählen Sie in der Spalte group_values ​​die erste Zelle aus, die Sie vergleichen möchten, bevor Sie den Makro ausführen.

     'group_values, some_number, empty_columnToHoldSubtotals 
    ' (hier geht was rein) 
     'cookie 1 leer 
    ' cookie 3 leer 
     'cake 4 leer 
     'hat 0 leer 
    ' hat 3 leer 
     '... 
    ' stop 
    
     Zwischensumme () 
     'Definieren zwei Zeichenfolgen und ein Zwischensummenzähler-Ding 
     Dim thisOne, thatOne As String 
     Dim subCount As Double 
     
     'Setzen Sie die Werte 
     thisOne = ActiveCell.Value 
     thatOne = ActiveCell.Offset (1, 0) 
     subCount = 0 
     
     'Eine Schleife einrichten, die bis zum Erreichen eines Stoppwerts 
     läuft. While (ActiveCell.Value <> "stop") 
     
    ' vergleicht einen Zellenwert mit der Zelle darunter. 
     If (thisOne = thatOne) Then 
     'Wenn die Zellen gleich sind, wird die Zeilenanzahl zu der Unteranzahl 
     SubCount = subCount + ActiveCell.Offset (0, 1) hinzugefügt. Wert 
     
     Andernfalls 
     ', Wenn die Zellen nicht gleich sind, wird der Unterzähler geschrieben und die Zwischensumme zurückgesetzt. 
     ActiveCell.Offset (0, 2) .Value = ActiveCell.Offset (0, 1) .Value + subCount 
     SubCount = 0 
     
     End If 
     
     'Wählt die nächste Zelle nach unten 
     ActiveCell.Offset (1, 0) .Wählen Sie 
     
     'weisen Sie den Variablen 
     thisOne = ActiveCell.Value 
     thatOne = ActiveCell.Offset (1, 0) [die Werte der aktiven Zelle und die darunter liegenden Werte zu. .____.] Wend 
     
     End Sub 
    
    1
    user232181