Excel, belirli bir değişken uzunluklu bitiş alt dizgisine ve bu alt dizgisiz dize döndürme dizgisine nasıl bakılır?


0

Bu soruya nasıl başlayacağımı bilmiyorum.

Excel'e nasıl yaklaşacağımı bilmediğim için karmaşık bir sorunum var.

Uzun değişken uzunluklu dizgelere sahip bir sütunum var, örneğin

c68d7a51-5cef-4a5c-b417-b2751fe9754b  
c68d7a51-5cef-4a5c-b417-b2751fe9754b-0  
c68d7a51-5cef-4a5c-b417-b2751fe9754b-1
09573f-1780c84f-e5ff-85821a-6236e0399d
09573f-1780c84f-e5ff-85821a-6236e0399d-10
09573f-1780c84f-e5ff-85821a-6236e0399d-123

"- ***" ile bitenler için, RIGHT alt dizgisini başka bir boş bırakmadan dizgiyi döndüren yeni bir sütuna ihtiyacım var. Bitiş alt dize "-" özel karakterinden uzun süre 1 ila 3 karakter arasındadır. Ayrıca, dizgilerin uzunluğundaki ve "-" yerleşimindeki değişiklik nedeniyle soldan çalışamayacağımı yorumlara dayanarak not etmem gerekiyor. Tek sabit, bu dizelerin bazılarının, son "-" den sonra 1 ila 3 dijital alt dize değerine sahip olmasıdır.

Bir taslak için şimdiye kadar sahip olduklarım şuna benziyor

=IF(RIGHT(A1,4) contains "-", RIGHT(A1, LEN(A1) - number_of_chars_to_remove), else null. 

Sakıncası yoksa, bunu nasıl yapacağım?

Yardımlarınız için teşekkür ederim, teşekkür ederim!


her zaman 4, -sonra -çıkarmak istediğiniz?
Scott Craner

Merhaba Scott, 4 "-" bölücü de dahil olmak üzere tüm dizginin sağından biten alt dizginin maksimum uzunluğu. Ancak bazen dizginin son 4'ü "-" içermez, ki bu, null dönüş anlamına gelir, çünkü her şey yolundadır. Fakat son 4 "-" içerdiğinde, "-" harfini ve bundan sonraki her şeyi yeni bir sütun için kaldırmam gerekiyor. "-" işaretinden sonraki karakterlerin (son 4'te) 1, 2 veya 3 rakamdan oluşması.
Rocket Spaceman

İstediğim bu değildi. Şu anda, sömürülebilecek bir düzeniniz var. 4 veya 5 "-" değerine sahipsiniz ve dizgeyi 5. "-" 'den önce ya da 5 "-" değilse null olmasını istersiniz. Öyleyse tekrar soruyorum, her zaman 4 "-", 5. "-" dizgilerinizde aldatıcı olur mu?
Scott Craner

Telin solunda mı? Yea sizi yanlış anlıyor, dizenin hiçbir solu rastgele hem uzunluk hem de çizgi sayısı değişmiyor, bu yüzden soldan çalışamıyorum.
Roket Spaceman

Yanıtlar:


1

Bunu kullan:

=IF(ISNUMBER(FIND("-",RIGHT(A1,4))),LEFT(A1,FIND("}}}",SUBSTITUTE(A1,"-","}}}",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))-1),"")

İlk önce -son dörtte bir olup olmadığını , eğer öyleyse sonunu bulur -ve onu değiştirir }}}. Sonra bunu bulur ve LEFT denkleminin sonunu yapar.

görüntü tanımını buraya girin


Sen bir sihirbazsın! çok teşekkür ederim! Pastırmamı kurtardın!
Roket Uzay

0

Bana göre, örnek verilerinize dayanarak, dizeyi sayabiliyorsunuz ve 5 çizgi varsa, ilk 38 karakteri döndür, yoksa NULL döndür. Bu çok daha basit olurdu. 38, ipin beşinci uzunluğa kadar olan uzunluğu kadar önemlidir.


İyi öneri, kısa çizgi içinde olmasına rağmen tek sabit son 4 ya çizgi ya da değil. Çünkü bunun solundaki dize yerleri rastgele olacak ... Biliyorum gerçekten çok dağınık .. ama bu yüzden sol yerine sağdan çalışmaya çalışıyorum. Çünkü doğru, son 4'ün bir çizgisinin olacağını ya da olmayacağını bilmek için birlikte çalışmak zorunda olduğum en sabit sonuç. ve bir tire varsa, ondan sonra yalnızca 1 ila 3 hane sahip olacaktır.
Roket Spaceman
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.