Alfanümerik bir dizgede son 7 sayı değeri nasıl çıkarılır?


1

Bir excel hücresindeki bir dizgeden son 7 sayı değerini (karakter değil) çıkarmam gerekiyor. Dize bir dosya adı (harf, sayı ve kısa çizgi karışımı olabilir) ve ardından başka bir sütuna taşınması gereken 7 sayı içerir.

Örneğin. Johnson Set1- 0 0 1 14 9 54 0

Sayı değerleri 0 ile 999 arasında değişir, bu nedenle sadece son 7 karakteri çıkarmak mümkün değildir.


Çıkarılacak altlık her zaman bir çizgi (-) ile gelir mi? Bu her zaman dizedeki SADECE çizgi midir?
XOR LX

Yanıtlar:


1

Yani, istediğini elde etmek için kullanabileceğiniz birkaç püf noktası var. Onları burada açıklamak için elimden gelenin en iyisini yapacağım ve sonra size bu hileleri kullanarak istediğiniz gibi vermek için bir formül vereceğim.

Anahtar, sayılar listesi başlamadan önce boşluğu bulmaktır. Örneğiniz yeterince genelse, bu alan her zaman sağdan 7. alan olacaktır. Sorun şu ki, sağdan 7., soldan herhangi bir sayı boşluğu olabilir çünkü belli bir boşluğa sahip olan dosya adı ile ilgili kural yokmuş gibi geliyor. Ve SUBSTITUTE işlevi, bir dizenin hangi örneğini (soldan) değiştireceğinizi belirlemenizi sağlar.

7. boşluğu sağdan almak için, onu soldan boşluğa çevirmek zorundayız. Bunu yapmak için, dizenin tamamındaki boşluk sayısını bilmemiz gerekir. Bir kere buna sahipsek, bu sadece bir çıkarma meselesi.

Dizedeki toplam boşluk sayısını bulmak için, SUBSTITUTE ve LEN fonksiyonlar. Fikir, dizgideki tüm boşlukları hiçbir şey ile değiştirmek ve daha sonra çıktının uzunluğunu orijinal dizenin uzunluğuyla karşılaştırmaktır. Fark elbette orijinal dizedeki boşlukların sayısıdır. Yani bir dize için A1, aşağıdaki boşlukların sayısını döndürür:

=LEN(A1)-LEN(SUBSTITUTE(A1," ",""))

Böylece, istediğiniz soldaki alanın sayı örneği her zaman solunda 6 boşluk bırakacaktır.

=LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6

Şimdi, bir sonraki sorun sadece SUBSTITUTE Değiştirmek istediğiniz örnek numarayı belirtmenize izin verir. FINDSayıların çıkarılması için en uygun olan, bu özelliğe sahip değildir. O zaman püf noktası kullanmaktır. SUBSTITUTE kullanmanıza izin veren bir dize oluşturmak için FIND istediğiniz gibi 7. boşluğu sağdan dizgede başka hiçbir yerde bulunmayan bir dizeyle değiştirirseniz, aranacak benzersiz bir alt dizginiz olur. Örneğin, istenen boşluğu "REPLACE! ME" ile değiştirmek için aşağıdakileri kullanabilirsiniz:

=SUBSTITUTE(A1," ","REPLACE!ME",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6)

Şimdi, dizgede "REPLACE! ME" dizini bulmanız ve her şeyi sağına döndürmeniz yeterli. Bu yapılabilir RIGHT, LEN, ve FIND fonksiyonlar. Son fonksiyon, tekrarlayan bir işlemdir, ancak işi halleder.

 =RIGHT(SUBSTITUTE(A1," ","REPLACE!ME",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6),LEN(SUBSTITUTE(A1," ","REPLACE!ME",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6))-FIND("REPLACE!ME",SUBSTITUTE(A1," ","REPLACE!ME",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6))-LEN("REPLACE!ME")+1)

Sağladığınız formülü kullandım ama hiçbir şey olmuyor.
Rachel

Hücre başvurusunu A1'den dizenin hangi hücresinde tuttuğuna bağlı olarak güncellediniz mi? A1'in tüm örneklerini değiştirmeniz gerekir.
Excellll

Merhaba Excellll, evet hücre referansını değiştirdim ama hala hiçbir şey alamıyorum. Başka önerileriniz ??
Rachel

"Hiçbir şey alamamak" derken ne demek istiyorsun? Ne geri döner?
Excellll
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.