VBA'daki OR TextToColumn dizgisine dahil edildiyse vurgulayın


0

Çözümlere bağlı olarak 1 veya 2 sorum var.

Hücrelerdeki 001.1, 003.1, 005.1 ... gibi verilerim var. Daha sonra "001.1 | 005.1" gibi veriler içeren hücrelere sahibim. Yapmak istediğim, eğer mümkünse - Bu tekil değerleri ayrıştırılmamış değerlerle karşılaştırmak istiyorum ve eğer tekil değerlerin bazıları bu dizgiye dahilse, onu vurgulayın.

Olası bir çözüm (aslında fazladan bir değer satırı nedeniyle gerçekten istediğim şey değil), "|" ayırıcılı ve sonra koşullu biçimlendirme ile bu tek değerleri TextToColumn öğesinin sonucuyla karşılaştırın.

Sorum şu: Bir şekilde, bu tek değerlerin (E2 = "001.1" vb.) Doğrudan bu ayrı değerlerle (E11 = "001.1 | 003.1") karşılaştırılması mümkün müdür? [Bu benim tercih ettiğim çözüm]

Veya NOT, VBA'da Text To Column için özel işlev yazmama yardım eder misiniz?

İşte sahip olduklarımın resmi.

picture

E2: E7 = tek değerler
E11 = ayrılmamış dize
G11, H11, I11 = Metnin Sütuna sonucu
sağdaki pencere = E2: E7 ile G11: I11'i karşılaştırmak için "= OR (E2 = $ G $ 11: $ I $ 11) özel formülüyle koşullu biçimlendirme"

Çok teşekkür ederim.


Ben senin örneğinden biraz kafam karıştı. Bir sütunda tek ve birleştirilmiş değerlere sahip misiniz? Karşılaştığınız değer aralık içinde sabit mi ($ E $ 2), yoksa aralığın konumuna göre mi?
Vylix

VBA'yı yazmanıza yardımcı olabiliriz ... Neden denediğinizi paylaşmıyorsunuz, biz de yardım edelim
Dave

Örnekte E11 bir "DEĞER" değil, bir Dize; bu bir karakter dizisidir. Karakter 1 "0", Sıfır değil. Karakter 6 "|" ve bunun gibi. Bu nedenle, ayrıştırılmamış değerleri belirtmek Excel'de bir terim değildir, programlama dilinde bir dizedir ve genellikle veri dizelerinde ve Tokens gibi kelimeler ve Delimiter'de kullanılır. String, Token ve Delimiter'ın ne olduğunu biliyorsanız, o zaman bu bir başlangıçtır. Ve 001.1 veya xxx.x'in her zaman 3 karakterden sonra bir karakterden sonra bir karakterden sonra açıklamasını yapmadınız. Elbette daha büyük bir resim için sahte veri gibi görünüyor. Çok katı kurallar var.
ejbytes

Başlamak için "001.1 | 002.1 ... | ..." içeri aktarılacak veri olabilir mi? Öyleyse, içe aktarmadaki değerleri ayırmak için "|" Sınırlayıcıyı, özel sınırlayıcıyı kullanın. Yine, sunumunuzdaki tüm hususlar değil, küçük bir resim setinin daha küçük olduğu görülüyor. Üzerinde çalıştığınız verilerin gerçekte nasıl ve ne olduğu ile ilgili kesin tanımlara ihtiyacınız var; ne kadar dinamik, ne kadar statik, verinin katılığı vs. Verilerle çalışan büyük bir problem de "verileri ayarlamak" tır. Ham veriler kendi başına bir şeydir, ancak verileri denemek için verileri doğru şekilde ayarlamanız gerekir; veri kurulumu görevin% 90'ı
ejbytes

verilerim: sütundaki tek dizeler ve bu sütunun sonunda bu dizgelerin bazıları ayrılmamış (sınırlayıcı |). ex. E2 = 001.1, E3 = 002.1, E4 = 003.1 vb. Ve sonunda, E11 = 001.1 | 003.1. ve E11'i taramak istiyorum ve E2: E4 dizesinin bir kısmı E11'e dahilse, vurgulamak istiyorum.
Roman Žydyk

Yanıtlar:


0

Sütun E'deki değerleri seçin (E2: E7), Koşullu formatlamada, Yeni Kural, Formatlanacak hücreleri belirlemek için Formül Kullan:
=COUNTIF($G$11:$I$11,"*"&E2&"*")>0 ve Biçim
Formül içine E2: E7 dahil edilmesine gerek yok sadece Koşullu Biçimlendirmeye dahil etmek için seçin
Örneğin, E2, G11 hücrelerinin dizgisinde ise Form Eşleşir: Doğru ise E11 karşılık gelen hücreyi E biçiminde biçimlendirir.
Güncelleştirme
E11 ile karşılaştırmanız gerekirse, sadece şunu kullanın:
=COUNTIF($E$11,"*"&E2&"*")>0 ve Biçim
ayırmaya gerek yok E11 (Metin sütununa)
Ardından yeni bir kural oluşturun =E2="" ve biçimlendirmeyin
Kuralı Yönet seçeneğinde bu Kuralı tıklayın ve altına tıklayın Doğru ise dur bu kuralın aynı satırı


teşekkür ederim. bu çalışır, ancak dizenin tamamını (E11) taramak mümkündür, bu yüzden değerleri ayırmam gerekmez mi? (G11: I11)
Roman Žydyk

E11'i G11 ile birlikte ekleyin: I11 11 $ gibi: 11 $
yass

E11'in vurgulanmasını istiyor musunuz?
yass

hayır, ayrılmamış dizede bulunan tek dizeler. E2 = 001.1, E3 = 002.1, E4 = 003.1 ve E11 = 001.1 | 003.1 varsa - E2 ve E4'ü vurgulamak istiyorum.
Roman Žydyk

E11'i G11: I11 ile dahil edebilir misiniz yoksa dahil etmeniz gerekmeyen F11'iniz var mı?
yass

0

Hem tekli hem birleştirilmiş değerleriniz tek bir sütundaysa, bunu koşullu biçimlendirmede deneyin:

=ISNUMBER(SEARCH(E2, $E$11))

Burada E2, E11'in olası alt dizgilerinin aralığıdır.

@Yass answer gibi, için yeni bir kural ekleyin =E2='', Kuralları Yönet ve kontroller Doğru ise dur


teşekkürler, ama bu sadece tam dizgiyi vurgulayacaktır, ancak, o dizgeyi taraması gerekir ve eğer dizgede tek bir kaydın biri varsa, o dizilişi vurgulamalıdır.
Roman Žydyk

Bu durumda, "string" i E2 olarak değiştirmeli ve E11 ile karşılaştırmalısınız, burada E2: E9, E11'deki birleştirilmiş dizeyle karşılaştırmanız gereken dizgelerin aralığıdır. Cevabımı düzelteyim.
Vylix
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.