• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Veri Doğrulama Formülüzasyon Sorunu (Çok Değişkenli)

Katılım
29 Haziran 2015
Mesajlar
11
Excel Vers. ve Dili
Office 2021 (Professional Plus)
Arkadaşlar merhaba.

Hemen konuya giriyorum. Bir hesap tablosunda, alttoplam formülünü ve diğer teslim şartlarını etkilemekte olan ;

- Nakliye Bedeli
- Nakliye Sigortası için ayrılmış bölümler mevcut.

Bu alanlar için girilebilecek verinin türünü ve değerini sınırlandırmam; yapılacak anlaşma türünün sıhhati açısından hayati öneme haiz.

Dolayısı ile " Veri Doğrulama " yöntemiyle sorunu çözmeye çalıştım fakat tam olarak sonuç alamadım. VBA ve makro bilgim olmadığından; ilgili dosyadaki formül ve detaylı açıklaması üzerinden yardımcı olursanız çok sevinirim.

Buyrun buda formülümüzün açıklaması.

Yapılacak Anlaşma Şekline Göre;

1) NAKLİYE ve SİGORTASI HARİÇ : Hem Nakliye hem de sigortası yapılacak anlaşma kapsamı dışında tutulabilir.

2) NAKLİYE DAHİL AMA SİGORTASI HARİÇ : Yalnızca nakliye bedeli anlaşmaya dahil edildiği halde, nakliye sigortası hariç tutulabilir.

3) HEM NAKLİYE HEM DE SİGORTASI DAHİL : Her iki bedel de anlaşma kapsamına alınabilir.

Şimdi !

Nakliye Ve Sigorta Bedellerinin belirtileceği hücre değerinin alabileceği değerler için ana ihtimallerimiz;

HARİÇ OLDUĞU Durumlarda;
a) ="EXCLUDED" (yani eşittir "hariç") yada,
b) =0 (eşittir sıfır) yada,
c) ="" (eşittir boşluk). olabilir.

DAHİL OLDUĞU Durumlarda;
d) <>"EXCLUDED" ("HARİÇ"den farklı, yani dahil olduğunu gösteren bir ifade) yada,
f) >0 (sıfırdan büyük) yada,
g) <>"" (boşluktan farklı) şeklinde bu durumlar ifade edilebilir.


Veri doğrulama ile sağlamak istediğim noktalardan ikisine örnek vermek gerekirse;

1) Sigorta Bedeli ="DAHİL" yada >0 iken; Nakliye Bedeli ="" (boşluk) girilmek istenirse ! yada,

2) Nakliye Bedeli="" (boşluk) iken; Sigorta bedeline >0 (sıfırdan büyük) yada "DAHİL" ifadeleri girmek istenirse

girdiğim veri doğrulama formülü hata mesajı versin yoksa vermesin istiyorum. Yukarıda belirttiğim değerlerin çeşitliliğine uygun tüm kombinasyonları şu anki formül karşılıyor fakat yukarıdaki iki madde hariç !...


İlginize şimdiden teşekkür ederim. Yardımlarınızı rica ediyorum.

Örnek dosya linki buyrun.
 
Son düzenleme:
Örnek dosya ekleyebilir misiniz?
 
Dosyayı ekleyebileceğim bir alan göremedim mesaj panosunda. Acaba üyelik durumuna göre özel izin gibi bir şey gerekiyor mu dosya ekleyebilmek için ?
 
Dosya yüklemek için Altın Üye olmanız gerekiyor.

Ücretsiz dosya paylaşımı için aşağıdaki linke yükleyip adresi paylaşabilirsiniz.

http://s4.dosya.tc/
 
Arkadaşlar yardımcı olabilecek/ bir bilen yok mudur ?
 
Son düzenleme:
formül ve açıklamasının uzun olduğunun farkındayım fakat yapılamayacak bir şey olduğunu düşünmüyorum. Lütfen karmaşık gördüğünüz noktayı sormaktan çekinmeyin.
 
2 günlük aranın ardından kafama takılmaya devam eden bu formülde baya bir yol aldım sayılır. Öncelikle formülü kısalttım ve veri denetimi alanına artık yapıştırabiliyoruz.

Şu an geriye kalan tek sorun şu ki;

Eğer Sigorta Bedeli; sıfırdan büyük (>0) yada; eşittir "dahil" ise (formülde <>"Hariç" yani "hariç" den farklı ise şeklinde yer alıyor bu son kısım):

Nakliye bedeli ="" olduğu zaman hata vermesini istiyorum.

Adsiz.jpg.html


Fakat henüz aşamadım bu sorunu.


Örnek dosyanın son haline buradan erişebilirsiniz.
 
Makro ile çözüm hazırlayabiliriz...
 
Makro yada VBA bilmiyorum maalesef. Mutlaka ki daha kolay çözümü vardır eğer bilse idim. Ancak formül zaten hazır fakat daha önceki mesajımda belirttiğim üzere tek bir madde kaldı uygulayamadığım. Formül üzerinden bana bu konuda yardımcı olursanız çok sevinirim.
 
Merhaba.
Anladığım kadarıyla, veri doğrulama uygulamak istediğiniz iki hücrenin karşılıklı etkileşimli olmasını istiyorsunuz.
Karşılıklı etkileşim isteniyorsa, çözümü makro'da aramak

Ya da;
-- üçüncü bir hücrede, ilgili hücrelerdeki değerlere göre "HATA" / "DEVAM" gibi sonuç veren formül yazmak,
-- üçüncü bir hücreyi kullanmak istemezseniz kullanmak istediğiniz iki hücreye koşullu biçimlendirme uygulanıp, hatalı/hatasız seçim yapıldığında örneğin hücre zemin renkleri kırmızı/yeşil olacak şekilde "Koşullu Biçimlendirme" formülü kullanmak
düşünülebilir.
 
Merhaba;

İstediğiniz formülleri tam olarak buldum ve uyguladım. Örneğin linkini yolluyorum.
Yalnız şöyle bir durum var;
Sigorta bedeli için istediğiniz uyarıyı veriyor, sıkıntı yok fakat nakliye bedeli için istediğiniz uyarıyı vermiyor. Hatta bu durum ilgimi çekti ve yaklaşık 2-3 saat kadar uğraşıp kafa patlattım ama yine olmadı. Hücrenin boş olma koşulu ile ilgili bir sıkıntı oluyor, formül olarak boş hücreye şart koştuğunuzda işlem yapmıyor. Farklı hücreye formülü girip 1 ve 0 (doğru-yanlış) değerlerini kontrol ettim formülde sıkıntı yok ama veri doğrulamada bi problem oluyor nedense.
Ben işlem yapmasa da veri doğrulamayı yaptım yine bakarsınız, ek olarak sorununuzu koşullu biçimlendirme ile çözdüm örnekte inceleyebilirsiniz.

http://www.dosya.tc/server2/znrwtd/Yeni_Microsoft_Excel_Calisma_Sayfasi__2_.xlsx.html
 
Tam ümidi kesmeye başlamış idim ki yeni cevaplar gelmiş.

Sevgili "Eyüpcan", öncelikle harcadığın zaman ve emeğin için teşekkür ederim. Fakat veri denetimi kısmı tutarlı sonuçlara götürmüyor. Örneğin her iki (nakliye ve sigortası) sıfır değeri aldığı zaman veri doğrulama hata veriyor (ki bunun anlamı nakliye ve sigorta anlaşmaya dahil değil manası taşıyacaktır ve bu durum ihtimallerimiz arasında mevcut) . Aynı durum Nakiye bedeli sıfırdan büyük olduğu durumlarda sigorta bedeline de sıfırdan büyük değer vermek istersen tekrar ediyor (Nakliye bedelini anlaşmaya dahil edip sigortasını kapsam dışında tutan ihtimal de mevcut).

Koşullu Biçimlendirmeye gelince...
Bunu daha önce düşündüm fakat şöyle bir durum var ki bazı özel durumlarda Nakliye bedeliyle sigorta bedelinin bulunduğu satırların ikisi birden yada herhangi birisi gizli satır olarak kalmaları gerekebileceğinden koşullu biçimlendirme ile yapılmış görsel bir uyarı görüntülenemeyip hataya sebep olabilir. O yüzden bu seçeneği elemiştim.

Karşılıklı etkileşimi makroda aramak seçeneği yerine (makro bilmediğimden); aynı veri denetimi formülünü her iki hücrenin (nakliye ve sigortası) alabileceği değerlere göre yazdım ve iki hücreye birden aynı formülle veri doğrulama denetimi uyguladım. Halihazırda, boşluk("") değerinin haricindeki tüm ihtimallere istediğim şekilde cevap da alabiliyorum.

Fakat benim takıldığım husus; örnek dosyamdaki veri denetimi formülünde ; ilgili hücre değerinin "" (boşluk) değerini aldığı durumda hata vermesini istediğim şekilde kodlama yapmama rağmen; uygulamada excel'in bunu görmezden gelmesi.

Acaba nerde hata yapıyorum o formülde ?

Bu durumda geriye kalan seçeneklerden "omer.baran" kardeşimizin de dediği gibi, "Üçüncü bir hücreye ilgili duruma göre değer aldırıp; bu değer üzerinden veri denetimi" sağlayabiliriz. Bu yöntemi daha önce ilgili hesap bilgilerinin otomatik çağrılmasında kullandığımdan veri denetimine uyarlayabileceğimi düşünmüştüm.

Eğer hatayı bulamaz isem 3. hücre üzerinden veri denetimi yaptırma yöntemine, hata yapma riski bırakmayacağı için daha sıcak bakıyorum.
 
Son düzenleme:
Merhaba,

Çalışmamı aşağıdaki linke yükledim. Nakliye sıfır iken sigortaya değer girerken hata veriyor, sigorta sıfırdan farklı iken nakliyeye sıfır değeri girerken hata veriyor. Başlangıç koşullarında hücreler boş, veri doğrulamanın çalışması için hücrelerin boş olmaması (sıfır veya herhangi bir değer, yazı) olması gerekiyor.
Umarım istediğiniz sonuç budur.
Bu arada, yüklediğiniz dosyada bir formülasyon bulamadım, yalnızca açıklamaları bulabildim, bu nedenle formülünüzü incleyemedim.

İyi çalışmalar,

https://yadi.sk/d/QfCCp8YPhfXjw
 
Merhaba,

Bu arada, yüklediğiniz dosyada bir formülasyon bulamadım, yalnızca açıklamaları bulabildim, bu nedenle formülünüzü incleyemedim.

İyi çalışmalar,

https://yadi.sk/d/QfCCp8YPhfXjw

Sevgili "MFA2000" bu linkdeki dosya (ve daha önceki verdiğim dosyaların tamamı) ilgili formülleri içeriyor.

Formülün metin hali :

=EĞER(YADA(EĞER(VE(YADA(DG60=0;DG60="EXCLUDED";DG60="");YADA(DG58=0;DG58="EXCLUDED";DG58=""));1);EĞER(VE(YADA(DG60=0;DG60="EXCLUDED";DG60="");DG58<>DG60);1);EĞER(VE(DG58>0;DG58<>"EXCLUDED";DG58<>"";VE(DG60>0;DG60<>"EXCLUDED";DG60<>""));1));1)

burada yapmak istediğim ama sonuç alamadığım şey ise:

Sigorta bedeli >0 yada <>"EXCLUDED" iken; Nakliye ="" ise hata mesajı verdirmek.
 
burada yapmak istediğim ama sonuç alamadığım şey ise:

Sigorta bedeli >0 yada <>"EXCLUDED" iken; Nakliye ="" ise hata mesajı verdirmek.


Aslında bu işi ifade eden formüldeki şu kısım oluyor.

EĞER(VE(DG58>0;DG58<>"EXCLUDED";DG58<>"";VE (DG60>0;DG60<>"EXCLUDED";DG60<>""));1)

Yani DG58 hücresi sıfırdan büyük, "hariç"den farklı bir ifadeye eşit ve "boşluk"dan farklı iken;

aynı zamanda: DG60 hücreside, sıfırdan büyük, "hariç"den farklı bir ifadeye eşit ve "boşluk"dan farklı ise

sorun yok ama değilse hata ver !

Örnek:Sigorta Bedeli = 1 TL yada "Dahil" iken;
Nakliye Bedeli = "" (hücre boş bırakılır ise) uyarı vermiyor ! Normalde bu formüle göre bu örnekte hata vermeli diye düşünüyorum.

Nakliye bedelinin belirtildiği DG58 hücresinin "boşluğa eşit olmama" yani DG58<>"" formülünü daha başka hangi yollarla deneyebilirim diye düşündüğümde;

1)DEĞİL(DG58=0) yada,
2)EBOŞSA(DG58)

şeklinde olabileceği aklıma geldi. Ancak uygulamada değişen yine birşey olmadı.

Arkadaşlar diğer ihtimalleri de kapsayan o uzun formüle kafa yormanıza gerek yok.Formülde sonuç alamadığım ve yukarıda izah ettiğim tek şartta hata vermeyi sağlayabilirsek kalan ihtimallerin yer aldığı kısımla beraber formüle ben uyarlayabilirim.

Sigorta>0 ve <>"hariç" iken (yani=EĞER(VE(DG60>0;DG60<>"EXCLUDED") ve;

Nakliye="" (yani DG58="") ise

uyarı mesajı versin.
 
Merhaba,

Sigorta bedeli varken nakliye bedeli hücresinin boş olması durumunda uyarı verilmesi sıkıntılı, bir çözüm bulmak zor. Ancak Nakliye bedeli hücresi boşken Sigorta bedeli girilmesini önleyebilirsiniz. Bu alternatifi tercih etmek isterseniz aşağıdaki formülleri D60 hücresine uygulayın:

Bu durumda nakliye bedeli hücresi boşken sigorta bedeli girilmek istenirse uyarı veriyor.

=NOT(ISBLANK(D58)) / =DEĞİL(EBOŞSA(D58))

veya

=IF(COUNTBLANK(D58)=1;0;1) / =EĞER(BOŞLUKSAY(D58)=1;0;1)


İyi çalışmalar,
 
Geri
Üst