Zdobądź pierwszy przedmiot ze Split ()


108

Używam funkcji SPLIT, aby podzielić ciąg, który wygląda podobnie 1.23/1.15.

W tej chwili daje dwie komórki, tak jak powinno. Ale jak uzyskać określony element z wyniku? Chciałbym zrobić coś takiego:

SPLIT("1.23/1.15", "/")[0]

wyodrębnić 1.23. Jaka jest poprawna składnia tego?

Próbowałem użyć INDEXfunkcji, ale bez powodzenia:=INDEX(SPLIT("1.23/1.15", "/"), 0,0)

Odpowiedzi:


163

Możesz użyć funkcji indeksu, aby wybrać wartość do zwrócenia. Aby pobrać drugą wartość z przykładu, możesz użyć:

=index(SPLIT("1.23/1.15", "/"), 0, 2)

Ostatni argument mówi, który columnchcesz pobrać - 1zwróciłby pierwszą wartość.

Alternatywnie możesz użyć left/ righti finddo wyodrębnienia dowolnej wartości z przykładu. Na przykład, aby uzyskać pierwszą wartość, której możesz użyć:

=left("1.23/1.15", find("/", "1.23/1.15"))

1
Och, po prostu założyłem, że indeks był oparty na zero. Dzięki
filur

Próbowałem left/ rightz spliti zawsze zwracało pierwszą wartość. Tylko ostrzeżenie dla każdego, kto nie zauważy, że musisz użyć findzamiast tego.
logicbloke

25

Problem z powyższymi dwoma rozwiązaniami polega na tym, że nie są one obsługiwane w funkcji arrayformula. Jeśli zawiniesz funkcję zapytania, uzyskasz pożądany wynik i jest bardzo elastyczny pod względem analizowania tylko pola, które chcesz zwrócić:

Zwróć pierwszą kolumnę

=query(SPLIT("1.23/1.15", "/"), "SELECT Col1")

Zwróć drugą kolumnę

=query(SPLIT("1.23/1.15", "/"), "SELECT Col2")

jeśli chcesz go użyć w tablicy tablicy, pamiętaj, aby ustawić nagłówek na pusty: =query(SPLIT("1.23/1.15", "/"), "SELECT Col1 label Col1 '' ")
arno

2

Dodatkowo, jeśli chcesz zastosować to do zakresu, możesz użyć:

 =index(split(filter(A2:A,A2:A<>""),"/"),0,2)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.