Çözüldü Arama Yapılabilir Veri Doğrulama Listesi Oluşturma

erkanyilmaz

Normal Üye

Excel Versiyonu
Excel 365
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba Üstadlarım,

Gönderdiğim dosyada bütün pazaryerlerin güncel komisyon oranları var ben onları "tüm" sayfa adında kategori kırılımlarını birleştirerek topladım sonra filtre ederek başka sayfada kullandım çünkü pazaryerini seçtiğim zaman pazaryerlerine ait kategoriler ayrı listelensin istedim sadece aklıma gelen en kolay yol buydu ancak veri doğrulama ile listeledim ancak bunu arama yapılabilir veri doğrulama listesine çeviremedim uğraştım olmadı. Veri doğrulama ve liste seçimi yaparak kaynak bölümüne ilk hücreyi seçip arkasından # işareti koymama rağmen hata aldım.

Bu konuda yardımcı olabilirseniz sevinirim.
 

Ekli dosyalar

  • Pazaryerleri Komisyon.xlsx
    553.1 KB · Görüntüleme: 7
Çözüm
Verilerinizi detaylı incelemedim.
Kesin çözüm, dediğim gibi, 255 karakter sınırına uyarak verilerinizi düzenlemeniz.

SOLDAN işlevi kullanarak alınan ilk 255 karakter bana göre geçici bir çözümdür.

=FİLTRE(İNDİS(B4#;;1);ESAYIYSA(MBUL(EĞER(Hesaplama!C3="";"";SOLDAN(Hesaplama!C3;255));SOLDAN(İNDİS(B4#;;1);255))))
ya da bir önceki mesajımda Ekleme olarak yazdığım
=FİLTRE(İNDİS(B4#;;1);ESAYIYSA(MBUL(EĞER(Hesaplama!C3="";"";SOLDAN(Hesaplama!C3;255));İNDİS(B4#;;1))))
formüller, bana göre dikkatli olunması gereken durumlardır.

Çünkü ilk 255 karakteri AYNI olan verilerden bir kaç adet varsa işte o zaman Problem olacaktır.
Çünkü seçilenin hangisi olduğu bilinmemeye başlayacak ve DÜŞEYARA...
Şunları söylemek isterim.
0 - Açılır liste, birkaç harf / kelime yazdığınızda 255 karakterden fazla olanlar da listelenecek şekildedir. Çünkü hücrelerde karakter adedi 32.767 karaktere kadardır. Ancak, açılır listeden, bir veri seçildiğinde tekrar açılır listeyi açmaya çalıştığınızda HATA verecektir. Çünkü Referans liste arama işlevi kullanılarak oluşturulmaktadır.
1 - Arama işlevlerinde (BUL, MBUL, KAÇINCI, ARA, DÜŞEYARA....) 255 karakter sınırı vardır. 255 karakterden fazla olduğunda HATA verecektir.
2 - Bu olay, sadece Veri doğrulamayla ilgili değil, sizin Hesaplama sayfasında kullandığınız (Örn. C6 hücresi) DÜŞEYARA işlevi için de geçerlidir.
Yani, Açılır listeden 255 karakterden daha fazla karakter içeren veri seçildiğinde, sizin formüllerde de DEĞER hatası verecektir.

*** Yapılması gereken ise, 255 karaktere uygun şekilde verilerinizi oluşturmanız.
 
Veya da
aranılanları 255 karaktere kadar arattırmak gibi bir çözüm uygulanabilir.
Yani, örneğin aranılan 300 karakter içeriyorsa, bunun il 255 karakteri alınarak arattırılabilir.

Örneğin,
Hesaplama sayfasındaki açılır listeyi kullanıp, Hobi yazıp Enter yaparak, açılır listeden

Hobi-Oyun > Hobi, Oyun Eğlence Ürünleri > Akıl Oyunları,Diecast Modeller,Figür Modelleri,Hobby,İlginç Ürünler,Kostüm ve Aksesuarları,Kutu Oyunları,Maket,Maket Aksesuarları,Metal Model Arabalar,Mıknatıslar,Oyun Takımı Aksesuarları,Oyun Takımları,Puzzlelar ve Aksesuarları,Rc Araç Yedek Parçaları,Rc Araç Ekipmanları,Uzaktan Kumandalı Arabalar,Uzaktan Kumandalı Elektrikli Uçaklar,Uzaktan Kumandalı Helikopterler, Uzaktan Kumandalı Tekneler

verisini seçtik varsayalım. Seçilen veri 438 karakter içermektedir.
Tekrar açılır listeyi açmaya çalıştığımızda #HESAPLA hatası içeren veri gelir. Çünkü Filtre sayfası F4 hücresindeki formülde, MBUL arama işlevi yer almaktadır ki, bu işlevde aranılacak karakter limiti 255 tir.

438 karakterin ilk 255 i alınıp arattırılabilir.
Filtre sayfası f4 hücresindeki formülü şöyle yazabilirsiniz.

=FİLTRE(İNDİS(B4#;;1);ESAYIYSA(MBUL(EĞER(Hesaplama!C3="";"";SOLDAN(Hesaplama!C3;255));SOLDAN(İNDİS(B4#;;1);255))))

Bu durumda, Filtre sayfası B kolonundaki veriler, >255 karakter ise ilk 255 karakteri alınarak Referans listesi oluşturulur. 255. karakterden sonrakiler alınmaz. (Bu durumda Tekrar eden verilerin olup olmadığının da kontrolunu yapmanız gerekir. Tekrarlı veri varsa, bir şekilde tekrarı bozup, benzersiz olmasını sağlayacak bir kaç karakter koymak gerekebilir)

Sizin arama işlevleri kullanan diğer formüllerinizi de gözden geçirip, ilk 255 karakteri alacak şekilde düzenlemeniz gerekecektir.

Ekleme :

=FİLTRE(İNDİS(B4#;;1);ESAYIYSA(MBUL(EĞER(Hesaplama!C3="";"";SOLDAN(Hesaplama!C3;255));SOLDAN(İNDİS(B4#;;1);255))))
formülünün 2. SOLDAN işlevini (Koyu yazılan) özellikle yazdım.
MBUL, BUL gibi işlevler için yazılmasa da olur. Yani referans liste MBUL işlevini kullanıyor. Olmasa da olur ve açılır listede, tüm 438 karakter yer alabilir.
Ancak, sizin DÜŞEYARA ya da diğer arama işlevleri olan KAÇINCI, ARA... vs gibi işlevlerde bire-bir eşleşme arandığında bu SOLDAN işlevi gerekli olacaktır.
 
Son düzenleme:
Veya da
aranılanları 255 karaktere kadar arattırmak gibi bir çözüm uygulanabilir.
Yani, örneğin aranılan 300 karakter içeriyorsa, bunun il 255 karakteri alınarak arattırılabilir.

Örneğin,
Hesaplama sayfasındaki açılır listeyi kullanıp, Hobi yazıp Enter yaparak, açılır listeden

Hobi-Oyun > Hobi, Oyun Eğlence Ürünleri > Akıl Oyunları,Diecast Modeller,Figür Modelleri,Hobby,İlginç Ürünler,Kostüm ve Aksesuarları,Kutu Oyunları,Maket,Maket Aksesuarları,Metal Model Arabalar,Mıknatıslar,Oyun Takımı Aksesuarları,Oyun Takımları,Puzzlelar ve Aksesuarları,Rc Araç Yedek Parçaları,Rc Araç Ekipmanları,Uzaktan Kumandalı Arabalar,Uzaktan Kumandalı Elektrikli Uçaklar,Uzaktan Kumandalı Helikopterler, Uzaktan Kumandalı Tekneler

verisini seçtik varsayalım. Seçilen veri 438 karakter içermektedir.
Tekrar açılır listeyi açmaya çalıştığımızda #HESAPLA hatası içeren veri gelir. Çünkü Filtre sayfası F4 hücresindeki formülde, MBUL arama işlevi yer almaktadır ki, bu işlevde aranılacak karakter limiti 255 tir.

438 karakterin ilk 255 i alınıp arattırılabilir.
Filtre sayfası f4 hücresindeki formülü şöyle yazabilirsiniz.

=FİLTRE(İNDİS(B4#;;1);ESAYIYSA(MBUL(EĞER(Hesaplama!C3="";"";SOLDAN(Hesaplama!C3;255));SOLDAN(İNDİS(B4#;;1);255))))

Bu durumda, Filtre sayfası B kolonundaki veriler, >255 karakter ise ilk 255 karakteri alınarak Referans listesi oluşturulur. 255. karakterden sonrakiler alınmaz. (Bu durumda Tekrar eden verilerin olup olmadığının da kontrolunu yapmanız gerekir. Tekrarlı veri varsa, bir şekilde tekrarı bozup, benzersiz olmasını sağlayacak bir kaç karakter koymak gerekebilir)

Sizin arama işlevleri kullanan diğer formüllerinizi de gözden geçirip, ilk 255 karakteri alacak şekilde düzenlemeniz gerekecektir.

Ekleme :

=FİLTRE(İNDİS(B4#;;1);ESAYIYSA(MBUL(EĞER(Hesaplama!C3="";"";SOLDAN(Hesaplama!C3;255));SOLDAN(İNDİS(B4#;;1);255))))
formülünün 2. SOLDAN işlevini (Koyu yazılan) özellikle yazdım.
MBUL, BUL gibi işlevler için yazılmasa da olur. Yani referans liste MBUL işlevini kullanıyor. Olmasa da olur ve açılır listede, tüm 438 karakter yer alabilir.
Ancak, sizin DÜŞEYARA ya da diğer arama işlevleri olan KAÇINCI, ARA... vs gibi işlevlerde bire-bir eşleşme arandığında bu SOLDAN işlevi gerekli olacaktır.
Merhaba,

Teşekkürler.

Filtre sayfası f4 hücresine ; =FİLTRE(İNDİS(B4#;;1);ESAYIYSA(MBUL(EĞER(Hesaplama!C3="";"";SOLDAN(Hesaplama!C3;255));SOLDAN(İNDİS(B4#;;1);255)))) bu formülü uygulamama rağmen hata aldım ama sizin bu 255 karakter açıklamanız bana bir fikir uyandırdı.

Hesaplama sayfasında c6 hücresininde düşeyara formülü ile arattığım komisyon oranına soldan formülü ekledim şimdi komisyon oranını getirdi.

1674853795149.webp
 
Verilerinizi detaylı incelemedim.
Kesin çözüm, dediğim gibi, 255 karakter sınırına uyarak verilerinizi düzenlemeniz.

SOLDAN işlevi kullanarak alınan ilk 255 karakter bana göre geçici bir çözümdür.

=FİLTRE(İNDİS(B4#;;1);ESAYIYSA(MBUL(EĞER(Hesaplama!C3="";"";SOLDAN(Hesaplama!C3;255));SOLDAN(İNDİS(B4#;;1);255))))
ya da bir önceki mesajımda Ekleme olarak yazdığım
=FİLTRE(İNDİS(B4#;;1);ESAYIYSA(MBUL(EĞER(Hesaplama!C3="";"";SOLDAN(Hesaplama!C3;255));İNDİS(B4#;;1))))
formüller, bana göre dikkatli olunması gereken durumlardır.

Çünkü ilk 255 karakteri AYNI olan verilerden bir kaç adet varsa işte o zaman Problem olacaktır.
Çünkü seçilenin hangisi olduğu bilinmemeye başlayacak ve DÜŞEYARA, KAÇINCI gibi işlevler kullanıldığında, bire bir eşleşmede, listede ilk eşleşen alınacaktır.
Yani özellikle dikkat edilmesi gereken bir olaydır.

Sizin C6 hücresindeki formüldeki DÜŞEYARA işlevinde en sondaki 0 parametresi kaldırılarak yazıldığında Yaklaşık eşleşme yapar. Bundan da emin olmak gerekir. Çünkü yaklaşık eşleşmelerde, alfabetik sıralı (gerçi sizde alfabetik sıralı, ama ilerde bir değişiklik yapıldığında, nedenini aramak ve bulmak için saatleri harcayabilirsiniz) veri kullanmak gereklidir. Aksi halde yanlış sonuçlar üretebilecektir.

Şöyle yazıldığında ise bire-bir eşleşme yapar.

=DÜŞEYARA(SOLDAN(C3;255);SOLDAN(Filtre!B4#;255);2;0)

(Filtre!B4:D1048576 yerine direkt olarak Filtre!B4# yazılabilir. Filtre B4# yazdığınızda bunun karşılığı dosyanıza göre, Filtre!B4:D138 olmaktadır. Yani FİLTRE işlevi ile dökülen alanın adresidir)

Yine de söylemek gerekir ki, ilk 255 karakteri AYNI olan verileriniz varsa Çok dikkat edilmelidir.
 
Çözüm
Konuyu başlatan
Normal Üye
Katılım
Konum
Kemer
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Formül Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
25
Geri
Üst