Excel formülü: Metin diziye bölünmüş -

İçindekiler

Genel formül

=FILTERXML(""&SUBSTITUTE(A1,",","")&"","//y")

Özet

Metni bir sınırlayıcıyla bölmek ve sonucu bir diziye dönüştürmek için, SUBSTITUTE ve TRANSPOSE işlevlerinin yardımıyla FILTERXML işlevini kullanabilirsiniz. Gösterilen örnekte, D5'teki formül şöyledir:

=TRANSPOSE(FILTERXML(""&SUBSTITUTE(B5,",","")&"","//y"))

Not: FILTERXML, Mac'teki Excel'de veya Excel Online'da kullanılamaz.

Not: Bu numarayı bir MrExcel videosunda Bill Jelen'den öğrendim.

Açıklama

Excel, PHP patlatma işlevine veya Python bölme yöntemine benzer şekilde metni bir diziye bölmeye adanmış bir işleve sahip değildir. Geçici bir çözüm olarak, metne ilk olarak XML işaretlemesini ekledikten sonra FILTERXML işlevini kullanabilirsiniz.

Gösterilen örnekte, aşağıdaki gibi virgülle ayrılmış birkaç metin dizimiz var:

"Jim,Brown,33,Seattle,WA"

Amaç, virgülü ayırıcı olarak kullanarak bilgileri ayrı sütunlara ayırmaktır.

İlk görev, bu metne XML işaretlemesi eklemektir, böylece FILTERXML işlevi ile XML olarak ayrıştırılabilir. Metindeki her alanı rastgele bir üst öğe ile çevrili bir öğe yapacağız. SUBSTITUTE işleviyle başlıyoruz:

SUBSTITUTE(B5,",","")

SUBSTITUTE sonucunun sonucu şuna benzer bir metin dizesidir:

"JimBrown33SeattleWA"

İyi biçimlendirilmiş XML etiketleri sağlamak ve tüm öğeleri bir ana öğeye sarmak için, aşağıdaki gibi daha fazla XML etiketi ekler ve ekleriz:

""&SUBSTITUTE(B5,",","")&""

Bu, bunun gibi bir metin dizesi verir (okunabilirlik için satır sonları eklenir)

" Jim Brown 33 Seattle WA "

Bu metin, "// y" Xpath ifadesiyle xml bağımsız değişkeni olarak doğrudan FILTERXML işlevine gönderilir:

FILTERXML("JimBrown33SeattleWA","//y")

Xpath bir ayrıştırma dilidir ve "// y" tüm öğeleri seçer. FILTERXML'nin sonucu şuna benzer dikey bir dizidir:

("Jim";"Brown";33;"Seattle";"WA")

Bu örnekte yatay bir dizi istediğimiz için, TRANSPOSE işlevini FILTERXML etrafına sarıyoruz:

=TRANSPOSE(("Jim";"Brown";33;"Seattle";"WA"))

Sonuç şuna benzer yatay bir dizidir:

("Jim","Brown",33,"Seattle","WA")

Excel 365'te D5: H5 aralığına dökülür.

Ilginç makaleler...