Dapatkan item pertama dari Split ()

108

Saya menggunakan fungsi SPLIT untuk membagi string yang terlihat seperti 1.23/1.15.

Sekarang ini menghasilkan dua sel, sebagaimana mestinya. Tetapi bagaimana cara mendapatkan elemen tertentu dari hasilnya? Saya ingin melakukan sesuatu seperti ini:

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

untuk mengekstrak 1.23. Apa sintaks yang benar untuk itu?

Saya mencoba menggunakan INDEXfungsi tersebut, tetapi tidak berhasil:=INDEX(SPLIT("1.23/1.15", "/"), 0,0)

filur
sumber

Jawaban:

163

Anda dapat menggunakan fungsi indeks untuk memilih nilai mana yang akan dikembalikan. Jadi untuk mengambil nilai kedua dari contoh Anda, Anda dapat menggunakan:

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

Argumen terakhir mengatakan yang columningin Anda ambil - 1akan mengambil nilai pertama.

Alternatifnya, Anda dapat menggunakan left/ rightdan findmengekstrak salah satu nilai dari contoh Anda. Misalnya untuk mendapatkan nilai pertama Anda bisa menggunakan:

=left("1.23/1.15", find("/", "1.23/1.15"))
gar
sumber
1
Oh, saya hanya berasumsi indeks berbasis nol. Terima kasih
filur
Saya mencoba left/ rightdengan splitdan selalu mengembalikan nilai 1. Hanya peringatan bagi siapa saja di luar sana yang tidak memperhatikan bahwa Anda perlu menggunakan findsebagai gantinya.
logicbloke
25

Masalah dengan dua solusi di atas adalah keduanya tidak didukung di dalam fungsi formula larik. Jika Anda menggabungkan dalam fungsi kueri, Anda mendapatkan hasil yang diinginkan dan sangat fleksibel dalam hal penguraian hanya bidang yang ingin Anda kembalikan:

Kembalikan Kolom 1

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

Kembalikan Kolom ke-2

=query(SPLIT("1.23/1.15", "/"), "SELECT Col2")
pengguna3626750
sumber
jika Anda ingin menggunakannya dalam rumus array, ingatlah untuk mengatur header menjadi kosong: =query(SPLIT("1.23/1.15", "/"), "SELECT Col1 label Col1 '' ")
arno
2

Selain itu, jika Anda ingin menerapkan ini ke suatu rentang, Anda dapat menggunakan:

 =index(split(filter(A2:A,A2:A<>""),"/"),0,2)
N_Browder
sumber