Ich habe ein Google Sheet mit einem Formular verknüpft, das Antworten von drei verschiedenen Personen zum gleichen Thema mit demselben Formular sammelt und dreimal bearbeitet. Dadurch wird ein Blatt erstellt, das drei Spalten enthält, in denen angegeben ist, wo sich die drei Personen befinden.
Ich muss eine Ansicht / Abfrage erstellen, die diese drei Spalten verwendet und sie untereinander und nicht nebeneinander platziert. In einer Datenbank hätte ich so etwas wie die folgende Abfrage durchgeführt, ich habe mein 'Blatt' tblMain aufgerufen und die relevanten vier Spalten angegeben (ich benötige auch die Betreff-ID).
tblMain:
ID RALocation RBLocation RCLocation
Abfrage:
Select ID, RALocation as Location, 'RA' as Role from tblMain
Union
Select ID, RBLocation as Location, 'RB' as Role from tblMain
Union
Select ID, RCLocation as Location, 'RC' as Role from tblMain
Weiß jemand, ob es in Google Sheets eine Möglichkeit gibt, dies zu tun? Es macht mir nichts aus, mehr als ein Blatt zu erstellen und sie am Ende zu kombinieren, aber ich bin ein bisschen festgefahren, wie das geht.
Antworten:
Ich biete zwei Versionen an, je nachdem, ob leere Zellen aufbewahrt werden sollen. Die Grundidee ist dieselbe:
CHAR
).JOIN
Befehl für jede der drei Spalten.SPLIT
die verkettete Zeichenfolge mit demselben Zeichen.TRANSPOSE
das Ergebnis.Zum Beispiel:
Wo zum Verbinden / Teilen habe ich das Zeichen ausgewählt
CHAR(57344)
, das für den privaten Gebrauch bestimmt ist und daher in keiner gültigen Eingabe vorhanden sein sollte.Die obige Formel entfernt leere Einträge , da dies der
SPLIT
Fall ist. Dies kann praktisch sein, wenn Ihre Daten keine Leerzeichen enthalten: Sie sparen sich die Mühe, zu verfolgen, wo sich die letzte Zeile der Daten befindet. In anderen Fällen sollten Leerzeichen erhalten bleiben.Um Leerzeichen zu erhalten, folge ich der Antwort von Jacob Jan Tuinstra, außer dass ich anstelle von Leerzeichen einen anderen Unicode für den privaten Gebrauch verwendet habe (wer weiß, vielleicht haben Sie einige Zellen, die nur ein Leerzeichen enthalten, und Sie möchten diese behalten). Dies beinhaltet zwei zusätzliche Schritte: Nachdem ich alles wie zuvor verbunden habe
SUBSTITUTE
, ersetze ich esCHAR(57344)
durchCHAR(57344)&CHAR(57345)
, teile es dann wie zuvor und ersetze esCHAR(57345)
durch eine leere Zeichenfolge.Das vollständige Ergebnis sieht folgendermaßen aus (beachten Sie, dass ich jetzt spezifiziere, wo sich die letzte Datenzeile befindet):
Noch eine Einschränkung: Zeichenfolgen in Google Sheets dürfen nicht länger als 50000 Zeichen sein. Wenn Ihre Daten zu groß sind, als dass ein auf Zeichenfolgen basierender Ansatz funktionieren könnte, verwenden Sie ein Skript ( dieses ist ein guter Ausgangspunkt).
quelle
Mit dieser Formel ist es heutzutage sehr einfach, eine Vereinigung in Google Spreadsheet herzustellen:
Weitere Informationen finden Sie in der Google Text & Tabellen-Hilfe: Verwenden von Arrays in Google Sheets
quelle
Kurze Antwort
Google Sheets ist ein sehr leistungsfähiges Tool, das verschiedene Alternativen bietet, um ein ähnliches Ergebnis wie UNION-SELECT zu erzielen.
Alternativen
Eingebettete Arrays
Eine Alternative zur Verwendung von SPLIT-TRANSPOSE-JOIN-CHAR ist die Verwendung eingebetteter Arrays. Ein Vorteil dieser Methode besteht darin, dass keine Zeichenfolgen erstellt / dekonstruiert werden müssen, sodass die Begrenzung der Anzahl der Zeichen nicht relevant ist.
Filtern
Das Obige kann in Kombination mit FILTER () für Fälle verwendet werden, in denen eine Filterung erforderlich ist, um ein ähnliches Verhalten wie UNION-SELECT zu erzielen. Beispiel
Kann auch in Kombination mit QUERY () verwendet werden , enthält jedoch eine Kopfzeile. Informationen zum Entfernen der Kopfzeilen finden Sie unter Entfernen von Zeilen als Ergebnis der Google Spreadsheets-Abfrage .
So erstellen Sie eine Wertespalte
Verwenden Sie TRANSPOSE-SPLIT-REPT, um eine Wertespalte zu erstellen.
Auch QUERY () könnte verwendet werden, um eine Wertespalte zu erstellen, aber das Entfernen der Kopfzeile könnte die Formel komplexer machen. Verwenden Sie es nur, wenn die Einschränkungen der Zeichenfolgenlänge Probleme verursachen.
Lösung mit Embedded Arrays und TRANSPOSE-SPLIT-REPT
Angenommen, der Bereich tblMain ist A1: D7, wobei A1: D1 die Tabellenüberschriften sind und die Daten in A2: D7 sind.
Verweise
Anhängen von Google Spreadsheet-Arrays - StackOverflow
quelle