Próbuję używać funkcji SPLIT
i JOIN
w Arkuszach Google (nowa wersja) do manipulowania niektórymi danymi i mam problemy, ponieważ SPLIT
nie zachowuję pustych pozycji.
Źródło danych jest skonfigurowane w następujący sposób:
| A B C D
-----------------------
1 | q 5 r 2
2 | s t 4
3 | u 8 v
4 | w 3 x 6
(Puste wpisy w tym zestawie danych oznaczają „brak pomiaru”, który różni się od pomiaru 0
)
W kolumnach A
i C
uzyskuję pożądany wynik za pomocą formuły:
=SPLIT(JOIN("~",A1:A4,C1:C4),"~")
W ten sposób powstaje wiersz zgodny z oczekiwaniami q
s
u
w
r
t
v
x
, każdy w osobnej komórce.
Jednak ta metoda nie działa na kolumnach B
i D
. JOIN
działa zgodnie z oczekiwaniami, dając wynik:
5~~8~3~2~4~~6
Wykonywanie SPLIT
tych danych wyjściowych powoduje jednak problem: jestem z 5
8
3
2
4
6
, bez pustych komórek pomiędzy 5
i 8
lub pomiędzy 4
i 6
, co oznacza, że pary są podzielone (np. s
I v
powinny odpowiadać pustym komórkom, ale zamiast tego w
i x
zrobić). Problem polega na tym, że SPLIT
interpretuje się go ~~
jako pojedynczy separator, a nie jako dwa separatory z pustym wpisem między nimi.
Czy ktoś wie, jak zachować puste wpisy w tego rodzaju scenariuszu?
Pożądany wynik wyglądałby tak
q s u w r t v x
5 8 3 2 4 6
źródło
IF()
aby automatycznie przekonwertować puste pola na spacje.=ARRAYFORMULA(IF(ISBLANK(B1:B4)," ",B1:B4))
do stworzenia pustego zestawu kolumn z „” w pustych komórkach, które są następnie używane dlaSPLIT
iJOIN
. Nadal mam nadzieję, że ktoś ma bardziej eleganckie rozwiązanie: dodaje to kilka dodatkowych rzeczy do mojego dokumentu i nadal wymaga ode mnie aktualizacji numerów wierszy w kilku różnych miejscach, ponieważ do zestawu danych dodaje się więcej pomiarów. (Dzięki AI E. za przynajmniej pozwolenie mi na razieOdpowiedzi:
Wypróbuj następujące rozwiązanie.
Formuła
Wyjaśnione
Już pokazał nam, że
SPLIT
funkcja ignoruje puste komórki, dlatego wybrałem ten ciąg jako ogranicznik:" ,"
. Wynik pośredniJOIN
funkcji wygląda następująco:Wybieram ogranicznik dla
SPLIT
funkcji, aby być w ten sposób:","
. Wynik pośredniSPLIT
funkcji wygląda następująco:Teraz jednak mamy do czynienia z dodatkowymi białymi spacjami. Dlatego użyłem tej
TRIM
funkcji, aby usunąć wszystkie końcowe lub białe spacje (w połączeniu zARRAYFORMULA
). PorównajLEN
wartości każdego wyniku pośredniego.Wynik
Przykład
Stworzyłem dla Ciebie przykładowy plik: SPLIT, aby zachować puste komórki
źródło
Wypróbuj następujące rozwiązanie.
Kod
Stosowanie
Dodaj dowolną liczbę zakresów do funkcji, a zostaną one przetworzone. Dodaj ten mały skrypt do edytora skryptów w arkuszu kalkulacyjnym (Narzędzia> Edytor skryptów; Naciśnij przycisk Zapisz).
Przykład
Stworzyłem dla Ciebie przykładowy plik: SPLIT, aby zachować puste komórki
źródło
Krótka odpowiedź
Poniższa formuła zwraca pożądany wynik.
Rozszerzona odpowiedź
Ta odpowiedź skupia się na zapewnieniu sposobu uzyskania pożądanego rezultatu, zamiast na omawianiu sposobu wyboru wybranego podejścia do pracy.
Problem XY
OP chce zdobyć X i uważa, że Y powinien zwrócić ten wynik. Takie podejście jest problematyczne, ponieważ Y ma pewne zastrzeżenia. Może to być problem burmistrza, ponieważ OP pyta, jak sprawić, by Y działał, zamiast pytać o sposób uzyskania X, ale nie jest tak duży, ponieważ zapewnia kontekst i pożądany wynik.
Rozwiązanie
Arkusze Google są w stanie obsługiwać wyniki o wielu wartościach w bardzo prosty sposób z punktu widzenia użytkowników końcowych. Z drugiej strony pozwala na użycie specjalnej notacji, aby umożliwić użytkownikom końcowym definiowanie tablic.
Powyższe cechy umożliwiają uzyskanie oczekiwanego wyniku bez użycia funkcji SPLIT () i JOIN () oraz bez związanych z nimi zastrzeżeń.
Wyjaśnienie formuły
Jest to tablica 2 X 8 utworzona przez dwie tablice / zakresy 2 X 4. Średnik (
;
) jest stosowany przy założeniu, że separatorem dziesiętnym arkusza kalkulacyjnego jest kropka (.
). Jeśli separatorem dziesiętnym był przecinek, zastąp go ukośnikiem odwrotnym (\
).Konwertuje tablicę 2 X 8 na tablicę 8 X 2.
Jedną z zalet tej metody jest to, że nie wymaga ona specjalnego obchodzenia się z pustymi komórkami. Inne zalety to to, że jest to bardzo kompaktowa formuła i bardzo łatwo ją dostosować.
Bibliografia
źródło
Jeśli dołączysz i sprawisz, że separatorem będzie „”, w zasadzie przecinek z poprzedzającym spacją, automatycznie zachowa to miejsce po ponownym podzieleniu:
źródło