Bölme'den ilk öğeyi al ()


105

Kullandığım SPLIT gibi görünür bir dize bölmek işlevini 1.23/1.15.

Şu anda olması gerektiği gibi iki hücre veriyor. Ama sonuçtan nasıl belirli bir unsur elde ederim? Bunun gibi bir şey yapmak istiyorum:

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

ayıklamak için 1.23. Bunun için doğru sözdizimi nedir?

INDEXBaşarısız bir şekilde işlevi kullanmayı denedim :=INDEX(SPLIT("1.23/1.15", "/"), 0,0)

Yanıtlar:


159

Hangi değerin döndürüleceğini seçmek için dizin işlevini kullanabilirsiniz. Dolayısıyla, örneğinizden ikinci değeri almak için şunları kullanabilirsiniz:

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

Son argüman, hangisini columnalmak istediğinizi belirtir - 1ilk değeri alır.

Alternatif olarak, örneğinizden herhangi bir değeri çıkarmak için left/ rightve kullanabilirsiniz find. Örneğin, kullanabileceğiniz ilk değeri elde etmek için:

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

1
Oh, az önce endeksin sıfır tabanlı olduğunu varsaymıştım. Teşekkürler
filur

Denedim left/ rightile splitve her zaman 1. değeri döndürdü. Bunun findyerine kullanmanız gerektiğini fark etmeyenler için sadece bir uyarı .
logicbloke

24

Yukarıdaki iki çözümle ilgili sorun, bir dizi formülü işlevi içinde desteklenmemeleridir. Bir sorgu işlevini kaydırırsanız, istenen sonucu elde edersiniz ve yalnızca döndürmek istediğiniz alanı ayrıştırma açısından çok esnektir:

1. Sütunu Döndür

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

2. Sütunu Döndür

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

bir dizi formülü içinde kullanmak istiyorsanız, başlığı boş olarak ayarlamayı unutmayın: =query(SPLIT("1.23/1.15", "/"), "SELECT Col1 label Col1 '' ")
arno

1

Ek olarak, bunu bir aralığa uygulamak isterseniz şunları kullanabilirsiniz:

 =index(split(filter(A2:A,A2:A<>""),"/"),0,2)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.