Отримати перший предмет із Спліт ()


102

Я використовую функцію SPLIT, щоб розділити рядок, який виглядає приблизно так 1.23/1.15.

Зараз він дає дві клітини, як і слід. Але як отримати певний елемент із результату? Я хотів би зробити щось подібне:

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

добувати 1.23. Який для цього правильний синтаксис?

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

Відповіді:


157

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

=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/ rightз, splitі він завжди повертав 1-е значення. Просто голова для тих, хто там не помічає, що вам потрібно використовувати findзамість цього.
logicbloke

24

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

Повернення 1-ої колони

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

Повернення 2-ї колонки

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

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

1

Крім того, якщо ви хочете застосувати це до діапазону, ви можете використовувати:

 =index(split(filter(A2:A,A2:A<>""),"/"),0,2)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.