Belirli Bir Harf veya Karakter İçeren Dizeden Tam Bir Kelime Çıkar


3

Metin içindeki belirli bir karakteri ("=") içeren bir hücreden yalnızca kelimeyi çıkarmak istiyorum.

A2:  Dolly made me a homemade=cake and some muffins
A3:  we had cheese=cake for dinner
A4: Everyone loves how the bakery makes some awesome=cakes

Aşağıdaki sonucu (sütun: A2: A4) sütununda (B2: B4) aşağıdaki sonuçları vermek istiyorum.

B2:  homemade=cake
B3:  cheese=cake
B4:  awesome=cakes

Aşağıdaki çözümü çalışma sayfası işlevleriyle denedim.

A2: Johnny made his own dinner=lastnight and then cleaned the kitchen

=TRIM(TRIM(IFERROR(RIGHT(SUBSTITUTE(LEFT(A2,SEARCH(" ",A2&" ",SEARCH("=",A2))-1)," ",REPT(" ",LEN(A2))),LEN(C246)),""))),""),

Bu formül, gördüğünüz gibi çalışmaz, çünkü ("=") sembolünün sağına aşağıdaki sonuçları veren verileri çıkarır. Oysa, ("=") sembolünün tam kelimesini (sağ ve sol) çıkaracak bir çözüm arıyorum.


C3: veya B4: `? Sorunuz tutarsız.
DavidPostill

2
sed -r 's/.*\b([^ \t]+=[^ \t]+)\b.*/\1/' .. üzgünüm, karşı koyamadım.
Peter Schneider

Yanıtlar:


1

Takip etmeyi dene U ser D efined F yağ sürme (UDF)

Public Function Equals(inpt As String) As String
   Equals = ""
   ary = Split(Application.WorksheetFunction.Trim(inpt), " ")
   For Each a In ary
      If InStr(1, a, "=") > 0 Then
         Equals = a
         Exit Function
      End If
   Next a
End Function

enter image description here

Kullanıcı Tanımlı İşlevlerin (UDF'ler) kurulumu ve kullanımı çok kolaydır:

  1. ALT-F11 VBE penceresini açar
  2. ALT-ı ALT-M yeni bir modül açar
  3. öğeleri yapıştırın ve VBE penceresini kapatın

Çalışma kitabını kaydederseniz, UDF onunla birlikte kaydedilir. Excel'in daha sonra 2003 sürümünü kullanıyorsanız, kaydetmeniz gerekir. .xlsx yerine .xlsm dosyası.

UDF'yi kaldırmak için:

  1. VBE penceresini yukarıdaki gibi açın
  2. kodu temizle
  3. VBE penceresini kapatın

Excel'den UDF'yi kullanmak için:

= Eşittir (A1)

Genel olarak makrolar hakkında daha fazla bilgi için bkz.

http://www.mvps.org/dmcritchie/excel/getstarted.htm

ve

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

ve UDF'lerle ilgili detaylar için bakınız:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Bunun çalışması için makrolar etkinleştirilmelidir!

DÜZENLEME # 1:

Bunu olmadan yapabilirsiniz VBA , aynı metodolojiyi kullanarak. Veri ile A1 , içinde C1- girmek:

=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

ve arasında kopyalayın. Daha sonra B1 girmek:

=INDEX(C1:IV1,MATCH("*=*",C1:IV1,0))

enter image description here


-1

Excel'de, bir sözcüğü veya metni başka bir metin dizesinden çıkarmanıza yardımcı olabilecek bir dizi metin işlevi vardır. Hangi işlevi veya işlevlerin birleşimini kullanmak durumunuza bağlıdır. Örnek: Diyelim ki A1 hücresi metin dizgisine sahiptir: “Yaratıcılık, kesinlikleri bırakma cesaretini gerektirir”

1. Dizenin ilk 5 karakterini almak için LEFT işlevini kullanırız: = SOL (A1,5) Sonuç “Yaratık” 2. Dizenin son 11 karakterini almak için RIGHT işlevini kullanırız: = SAĞ (A1,11) Sonuç “kesinlikler” 3. 10 pozisyonundan başlayarak dizgiden 7 karakter almak için MID işlevini kullanırız: = ARA (A1,10,7) Sonuç “y requi” dir. 4. Dizenin ilk kelimesini almak için LEFT ve FIND fonksiyonlarını kullanırız: = SOL (A1, (FIND (”“, A1) -1)) Sonuç “Yaratıcılık”. - Daha fazlasını görün: http://www.exceldigest.com/myblog/2009/02/01/how-to-extract-text-from-another-text-string/#sthash.yNDHU7Xe.dpuf
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.