Получите первый предмет из Split ()

104

Я использую функцию SPLIT, чтобы разделить строку, которая выглядит примерно так 1.23/1.15.

Прямо сейчас он дает две ячейки, как и должно. Но как мне получить в результате определенный элемент? Я бы хотел сделать что-то вроде этого:

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

извлечь 1.23. Какой для этого правильный синтаксис?

Я безуспешно пытался использовать эту INDEXфункцию:=INDEX(SPLIT("1.23/1.15", "/"), 0,0)

Filur
источник

Ответы:

158

Вы можете использовать функцию индекса, чтобы выбрать возвращаемое значение. Итак, чтобы получить второе значение из вашего примера, вы можете использовать:

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

Последний аргумент говорит, что columnвы хотите получить - 1получит первое значение.

В качестве альтернативы вы можете использовать left/ rightи findдля извлечения любого значения из вашего примера. Например, чтобы получить первое значение, вы можете использовать:

=left("1.23/1.15", find("/", "1.23/1.15"))
гар
источник
1
О, я просто предположил, что индекс отсчитывается от нуля. Спасибо
filur
Я пробовал left/ rightwith, splitи он всегда возвращал 1-е значение. Просто предупредите всех, кто не замечает, что вам нужно использовать findвместо этого.
logicbloke
24

Проблема с двумя вышеуказанными решениями заключается в том, что они не поддерживаются внутри функции arrayformula. Если вы включите функцию запроса, вы получите желаемый результат и очень гибкий с точки зрения анализа только того поля, которое вы хотите вернуть:

Вернуть 1-й столбец

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

Вернуть второй столбец

=query(SPLIT("1.23/1.15", "/"), "SELECT Col2")
user3626750
источник
если вы хотите использовать его в формуле массива, не забудьте установить пустой заголовок: =query(SPLIT("1.23/1.15", "/"), "SELECT Col1 label Col1 '' ")
arno
1

Кроме того, если вы хотите применить это к диапазону, вы можете использовать:

 =index(split(filter(A2:A,A2:A<>""),"/"),0,2)
N_Browder
источник