Mam Arkusz Google połączony z formularzem, który zbiera odpowiedzi od trzech różnych osób na ten sam temat, używając tego samego formularza i trzy razy edytując. Spowoduje to utworzenie arkusza zawierającego trzy kolumny wskazujące, gdzie znajdują się trzy osoby.
Muszę stworzyć widok / zapytanie, które bierze te trzy kolumny i umieszcza je „pod” sobą, a nie obok siebie. W bazie danych zrobiłbym coś w rodzaju zapytania poniżej, nazwałem mój „arkusz” tblMain i podałem odpowiednie cztery kolumny (potrzebuję również identyfikatora podmiotu).
tblMain:
ID RALocation RBLocation RCLocation
Pytanie:
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
Czy ktoś wie, czy można to zrobić w Arkuszach Google? Nie mam nic przeciwko budowaniu więcej niż jednego arkusza, a następnie łączeniu ich na końcu, ale trochę utknąłem w tym, jak to zrobić.
Odpowiedzi:
Oferuję dwie wersje, w zależności od tego, czy należy zachować puste komórki. Podstawowa idea jest taka sama:
CHAR
).JOIN
poleceniu dla każdej z trzech kolumn.SPLIT
połączony ciąg tego samego znaku.TRANSPOSE
wynik.Na przykład:
gdzie do łączenia / dzielenia, wybrałem znak
CHAR(57344)
, który jest przeznaczony do użytku prywatnego, a zatem nie powinien być obecny w żadnych prawidłowych danych wejściowych.Powyższa formuła usuwa puste wpisy , ponieważ tak właśnie
SPLIT
działa. Może to być wygodne, jeśli dane nie mają pustych miejsc: oszczędza kłopotów ze śledzeniem, gdzie znajduje się ostatni wiersz danych. Ale innym razem należy zachować puste miejsca.Aby zachować puste miejsca, podążam za odpowiedzią Jacoba Jana Tuinstry, tyle że użyłem innego prywatnego użytku Unicode zamiast spacji (kto wie, może masz jakieś komórki zawierające tylko spację i chcesz je zachować). Wymaga to dwóch dodatkowych kroków: po połączeniu wszystkiego jak poprzednio, używam
SUBSTITUTE
do zamianyCHAR(57344)
przezCHAR(57344)&CHAR(57345)
, a następnie dzielę jak poprzednio i zastępujęCHAR(57345)
pustym ciągiem.Pełny wynik wygląda tak (zauważ, że teraz określam, gdzie jest ostatni wiersz danych):
Jeszcze jedno zastrzeżenie: ciągi znaków w Arkuszach Google nie mogą przekraczać 50000 znaków. Jeśli twoje dane są zbyt duże, aby można było zastosować podejście oparte na łańcuchach, użyj skryptu ( ten jest dobrym miejscem na rozpoczęcie).
źródło
Obecnie można bardzo łatwo utworzyć związek w Arkuszu kalkulacyjnym Google za pomocą tej formuły:
Zobacz więcej informacji w Pomocy Dokumentów Google: Używanie tablic w Arkuszach Google
źródło
Krótka odpowiedź
Arkusze Google to bardzo potężne narzędzie, które ma kilka alternatyw, aby osiągnąć wynik podobny do UNION-SELECT.
Alternatywy
Osadzone tablice
Alternatywą dla użycia metody SPLIT-TRANSPOSE-JOIN-CHAR jest użycie tablic osadzonych. Jedną z zalet tej metody jest to, że nie wymaga ona konstruowania / dekonstruowania ciągów, więc limit liczby znaków nie ma znaczenia.
Filtracja
Powyższe można zastosować w połączeniu z FILTER () w przypadkach, które wymagają filtrowania, aby mieć podobne zachowanie UNION-SELECT. Przykład
Można go również użyć w połączeniu z QUERY (), ale jego wyniki zawierają wiersz nagłówka. Aby dowiedzieć się, jak pozbyć się nagłówków, zobacz Pozbądź się wiersza w wyniku zapytania do Arkuszy kalkulacyjnych Google .
Jak utworzyć kolumnę wartości
Użyj TRANSPOSE-SPLIT-REPT, aby utworzyć kolumnę wartości.
Można również użyć QUERY () do utworzenia kolumny wartości, ale usunięcie wiersza nagłówków może uczynić formułę bardziej złożoną. Używaj go tylko wtedy, gdy ograniczenia długości łańcucha powodują problemy.
Rozwiązanie wykorzystujące macierze wbudowane i TRANSPOSE-SPLIT-REPT
Załóżmy, że zakres tblMain to A1: D7, gdzie A1: D1 to nagłówki tabeli, a dane znajdują się w A2: D7.
Bibliografia
Dołączanie tablic arkusza kalkulacyjnego Google - StackOverflow
źródło