2017-09-09 1 views
0

Ich habe zwei Spalten, A und B, wobei A einige Duplikate enthält. Kann ich in Google Tabellen aus diesen ein gestapeltes Balkendiagramm erstellen, sodass die Duplikate ein neuer Stapel über den anderen sind?Gestapeltes Balkendiagramm aus zwei Spalten mit einem, das Duplikate enthält

Daten könnten sein:

Date  | Duration 
-----------+--------- 
01/01/2017 | 1 min 
01/02/2017 | 2 min 
01/02/2017 | 1 min 
01/03/2017 | 1 min 

, wo ich würde dann wie drei Bars, eine davon für jedes einzelne Datum, mit 1, 3 und 1 Minute jeweils mit dem zweiten gestapelt sind zwei Bars.


Edit: Es scheint, dass ich dies in durch Bearbeiten der Daten tun können:

Date  | Duration | 
-----------+----------+------ 
01/01/2017 | 1 min | 
01/02/2017 | 2 min | 2 min 
01/03/2017 | 1 min | 

aber dann würde ich eine neue Spalte für für jedes Duplikat hinzufügen. Es könnte möglicherweise viele (obwohl in meinem Fall nicht so viele). Damit kann ich ein Diagramm über die Daten von A1: C4 erstellen und Google Tabellen wird die erste Spalte als Schlüssel und die beiden als gestapelte Spalten aufnehmen. Auch hier funktioniert es, aber ich hätte lieber eine Lösung für das ursprüngliche Problem, ohne die Daten zu ändern. Stacked bar chart

Antwort

-1

Ich endete am Ändern @anonymous 'Antwort ein wenig.

Ich konnte nicht die ARRAYFORMULA mit zwei {{...}} zu arbeiten, bekommen so stattdessen habe ich die folgenden:

  • In Sheet2 trat ich in A1:

=ARRAYFORMULA({"Date", "Duration" & TRANSPOSE(ROW(INDIRECT("Sheet1!A1:A" & MAXA(COUNTIF(Sheet1!A2:A100, Sheet1!A2:A100)))))})

  • Dies gibt die Header für die Tabelle. Der Eintrag mit den meisten Duplikaten bestimmt, wie viele Header es geben wird.

  • In A2 schrieb ich die andere Hälfte @anonymous' original Formel:

=ARRAYFORMULA({UNIQUE(Sheet1!A2:A999), SPLIT(TRANSPOSE(QUERY(TRANSPOSE(IF(UNIQUE(Sheet1!A2:A999)=TRANSPOSE(Sheet1!A2:A999), TRANSPOSE(Sheet1!C2:C999), "")),"",1000)), " ")})

  • Dies gibt dann alle Daten, alle Duplikate in jeder ihrer eigenen Zelle . Das Problem mit @anonymous 'Formel war, dass es viele Leerzeichen gab, die wiederum eine separate Zelle für jeden Raum benötigten. Wenn die Abfrage 1000 leere Zellen erfordert, würde es 1000 Spalten erfordern, die das Blatt nicht hatte, so gab es einen Fehler.

  • Das oben beschriebene funktioniert wunderbar und ich kann jetzt, in Sheet1 ein gestapeltes Säulendiagramm von Sheet2 eingeben, das wiederum Daten aus Sheet1 zieht.

-1

Ja:

Ein Beispiel dessen, was ich hier sein mag, kann würde gesehen. Sie können. Wählen Sie Ihre Daten> Diagramm einfügen> Gestapeltes Balkendiagramm. Sie haben, was Sie benötigen, solange Ihre Daten richtig formatiert sind.

Formatierung Anforderungen:

  • Spalte A und B Zahlen sein sollte. Wenn Ihre Daten richtig ausgerichtet sind, sind sie alle Nummern.

Wenn nicht,

  • Format Spalte A als Datum. Sie sollten automatisch richtig ausgerichtet sein.

  • Extract Zahlen aus Spalt B

    =ARRAYFORMULA(--REGEXEXTRACT(B1:B4,"\d+")) 
    

Dies werden alle „min“ und andere unnötigen und unnütze Worte entfernen und eine Reihe zurück zu geben. Kopieren Sie diese und paste values only über die ursprünglichen Daten.

Jetzt erstellen Sie ein Diagramm über diese Daten.

EDIT:

Wenn die oben nicht funktioniert, müssen Sie die Daten neu zu ordnen. Versuchen Sie folgendes:

=QUERY(A1:B5,"Select A,Sum(B) group by A") 
+0

Dies funktioniert nicht ganz. Es stapelt nicht richtig. Siehe dieses Bild für ein Beispiel: http://i.imgur.com/nXZygUb.png –

+0

Das ist seltsam. Ich kann das nicht reproduzieren. Können Sie einfach die Daten ohne die Header (Datum und Dauer) auswählen und Diagramm hinzufügen? Wenn nichts funktioniert, benutze 'QUERY': Siehe meine Bearbeitung. –

+0

Das würde mir nur noch die Summe bringen und sie nicht gestapelt haben. –

1

Auf der Grundlage der Frage bearbeiten und Klärung,

Das glaube ich nicht, dass es eine andere Möglichkeit, eine gestapelte Säulendiagramm zu machen, ohne die Daten neu ordnen.Nach Zahlen Extrahieren

=ARRAYFORMULA(--REGEXEXTRACT(B2:B7,"\d+")) 

A900 mit:

=ARRAYFORMULA({{"Date","Dopple"&char(10)&"Ganger"& transpose(ROW(indirect("A1:A"&1+MAXA(COUNTIF(A2:A15,A2:A15)))))};{UNIQUE(A2:A15),(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(IF(UNIQUE(A2:A15)=TRANSPOSE(A2:A15), transpose(B2:B15)&"™","")),,500)),"™"))}}) 

A2: A15 wird aktuell. Und B2: B15 wird Dauer

Wählen Sie A900: Z1000 und erstellen Sie ein gestapeltes Säulendiagramm. Beachten Sie, dass, wenn nicht genügend Duplikate vorhanden sind, solche Objekte nicht gestapelt werden.

+0

Es funktioniert für kleinere Datensätze, aber ich darf nicht mehr als A2: A26 dafür verwenden. Ich glaube, dass es die Anzahl der verfügbaren Spalten überprüfen könnte? Obwohl ich 26 Duplikate nicht habe, gibt es mir einen Fehler "In ARRAY_LITERAL fehlten einem Array Literal Werte für eine oder mehrere Zeilen.". –

+0

Versuchen Sie, '500' zu' 50000' oder mehr zu ändern, falls erforderlich. –

Verwandte Themen