Excel'deki sütunlara metin - sütunlara seçmeli olarak bölme


0

Tek bir hücreyi sütunlara ayırmaya çalışıyorum, ancak ayrılmış hücrelerde olması için sadece son 3 değere ("boşluk" ile ayrılmış) ihtiyacım var.

Buna sahibim (tek bir sütunda):

             Column A
Perdas com variações cambiais, líquidas 7 21.919.104 1.841,496
Perdas em ativos financeiros, líquidas 18 2.014.467 3.921.932
Perdas em empreendimentos conjuntos 30 2.185.679 3.011.998
Ganhos em empresas associadas, líquidos 33 (442.783.587) (210.273.584)

... ve 4 sütuna ihtiyacım var (biri metin için diğeri de sayısal değerler için 3:

             Column A                     Column B    Column C        Column D
Perdas com variações cambiais, líquidas       7      21.919.104           1.841,496
Perdas em ativos financeiros, líquidas       18       2.014.467       3.921.932
Perdas em empreendimentos conjuntos          30       2.185.679       3.011.998
Ganhos em empresas associadas, líquidos      33    (442.783.587)   (210.273.584)

Yanıtlar:


1

İşte bazı dev formüllerle bir çözüm var ama endişelenecek herhangi bir yardımcı sütun yok. Aynı verilerinizin aralıkta olduğunu varsayarsak A1:A4, bunlar için formül B1:F1. Kopyala / yapıştır ve aşağı sürükleyin.

Anahtar Nokta: Bu, verilerinizin örneğin biçimini takip ettiğini varsayar. Ham verilerde 3'ten az boşluk varsa, bir hata atar. Bununla birlikte, sorudaki durumun bu olduğunu belirttiniz, bu yüzden sorun beklemiyorum.

Anahtar Nokta: Bu ~, metinde bir tilde görünmediğini varsayar . Varsa, yapmayan başka bir tek karakter seçin. Bir boru |yaygın bir örnektir.

B1 =LEN($A1)-LEN(SUBSTITUTE($A1," ",""))
C1 =TRIM(LEFT($A1,FIND("~",SUBSTITUTE($A1," ","~",$B1-2))))
D1 =LEFT(TRIM(RIGHT($A1,LEN($A1)-FIND("~",SUBSTITUTE($A1," ","~",$B1-2)))),FIND(" ",TRIM(RIGHT($A1,LEN($A1)-FIND("~",SUBSTITUTE($A1," ","~",$B1-2)))))-1)
E1 =LEFT(TRIM(RIGHT($A1,LEN($A1)-FIND("~",SUBSTITUTE($A1," ","~",$B1-1)))),FIND(" ",TRIM(RIGHT($A1,LEN($A1)-FIND("~",SUBSTITUTE($A1," ","~",$B1-1)))))-1)
F1 =TRIM(RIGHT($A1,LEN($A1)-FIND("~",SUBSTITUTE($A1," ","~",$B1))))

(1) Vay; alt ifadeyi LEN($A1)-LEN(SUBSTITUTE($A1," ","")altı sütunda dört sütunda kullanır. Bu gerçekten yardımcı bir sütun için ağlıyor. (2) Metin herhangi bir numara içeriyorsa bu başarısız olur ( ~).
G-Man

@ G-Man Her iki noktada da haklısın. (1) Gördüğüm sorun, halihazırda yayınlanmış olan yardımcı sütun çözümünün, çok sağlam olmayan, bilinmeyen sayıda yardımcı sütun gerektirmesiydi. Yine de, bu değeri tek bir yardımcı sütun olarak ekleyebilirsiniz. (2) kullanıcı almak zorunda kalacak bazı metinlerinde söz görünmez değer. Bir boru da |iyi çalışıyor. Her iki noktayı da açıklığa kavuşturacağım.
Mühendis Toast

0

İşte bir demet “yardımcı sütun” gerektiren bir yöntem. Yol dışı olan bir sütun seçin; örneğin, AAveya Sheet2!A (Seçtiğinizi farz edeceğim AA), ve bunu girin

=IFERROR(FIND(" ", $A1), "")

hücreye AA1. Bu A1, ilk boşluk karakterinin hücresindeki karakter konumunu bulur . Bir tane yoksa, FIND()bir hata döndürür ve IFERROR()hatayı boş bir dize ile değiştirir. Sonra girin

=IFERROR(FIND(" ", $A1, AA1+1), "")

hücreye AB1. (Not Abir sahiptir $ama AAyok). Bu hücre içinde karakter pozisyonu bulur A1, ikinci boşluk karakteri (yani, hücre tarafından bulunan bir sonra ilk AA1). Yine, hata kodları boş hücrelerle değiştirilir. Bunu gerektiği kadar sağa sürükleyin. (Örneğin, 24 kelimeden daha fazla gerçek metnin olmasını beklemiyorsanız, o zaman üç sayıyı sayarak en fazla 27 "kelimeye" sahip olacaksınız. Bu nedenle, en fazla 26 boşluk olacak, yani dışarı sürükleyerek AZ1yeterli olmalıdır.) Eğer sürüklerseniz AB1için AZ1, o AZ1içermelidir

=IFERROR(FIND(" ", $A1, AY1+1), "")

Sonra (eğer aralığında dolu olduğunu varsayarak AA1:AZ1, aşağıdaki girmek yukarıdaki,) X1, Y1ve Z1:

  • X1 - =LARGE(AA1:AZ1,3)
  • Y1 - =LARGE(AA1:AZ1,2)
  • Z1 - =LARGE(AA1:AZ1,1)

Bunlar, üçüncü-son, ikinci-son ve son boşlukların yerleri olur A1. Örneğin:


  (Yukarıdaki resim, tam boyutlu bir kopyasına bir bağlantıdır.)

nerede elle değerleri sermiştir AA- AZExcel sütunlar için seçilen sütunlar X, Yve Z.

Şimdi, istediğiniz karakterleri (metin ve sayısal) kesmek için bu karakter pozisyonlarını kullanmak “basit” bir meseledir:

  • B1 - =LEFT($A1, X1-1)
  • C1 - =MID($A1, X1+1, Y1-X1-1)
  • D1 - =MID($A1, Y1+1, Z1-Y1-1)
  • E1 - =RIGHT($A1, LEN(A1)-Z1)

hangi eşittir

  • B1- A1sondan üçüncü boşluğa kadar olan (ancak hariç) her şey
  • C1 - üçüncü-son boşluk ve ikinci-son boşluk arasındaki her şey
  • D1 - ikinci-son ve son boşluk arasındaki her şey
  • E1 - son uzaydan sonraki her şey

Ve elbette, verileri elinizde olduğu sürece her şeyi aşağı sürükleyin. Örneğin,

           

Giriş satırının sonunda (son numaradan sonra) veya herhangi iki sayı arasında birden fazla boşluk varsa, bu bozulur. Bu duruma girerseniz, TRIM()işlevi araştırmanızı öneririm .


Merhaba G-Man! Yardımın için çok teşekkür ederim! Zaten sonuçlarım var ve tamamen ihtiyacımı karşıladı. Aslında, benim veritabanımda hem sizin hem de Engireer Toast'ın çözümleri temel olarak aynı çıktıyı alıyor. Bir kez böyle formülleri kullanmaya devam edeceğim, daha fazla geri bildirim alacağım.
Mário Dias
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.