İki değer arasında kalan değerin karşılığı

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Açıklamamı ekli, dosyada yazdım.
istenen : İki değer arasında kalan verinin karşılığı olan değerin istediğimiz sütuna getirilmesi.
Bir bakıma düşeyara diyebiliriz ama nasıl..

Daha önce Türker arkadaşım tarafından sütun ilavesi yapılarak formülle çözülmüştü.
Bende aynı konuyu soran başka bir arkadaşıma aynı çözümü önermiştim

Alternatifleri olabilirmi...

Burada ilk çözüm excel'in kendi işlevlerini kullanmak.Tabiiki diğer arkadaşlara yol göstermek açısındam Kullanıcı tanımlı fonk.ve makro ilede çözümler üretebiliriz.
 

Ekli dosyalar

Son düzenleme:

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
H2 hücresine

=ARA(G2;{1;4;7;10;13;16};{"A";"B";"C";"D";"E";""}) yazılıp aşağı doğru çekilir.
 
Son düzenleme:

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,056
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
H2 Hücresine aşağıdaki formülü yazıp, aşağıya doğru kopyalayabiliriz.

=DOLAYLI("C"&TOPLA.&#199;ARPIM(($A$2:$A$6<=G2)*($B$2:$B$6>=G2)*(SATIR($C$2:$C$6))))

Form&#252;l&#252;n a&#231;&#305;klamas&#305;:

TOPLA.&#199;ARPIM (SUMPRODUCT) &#231;ok kriterli aramalarda b&#252;y&#252;k avantaj sa&#287;layan bir dizi fonksiyonudur. Her parantez i&#231;i bir kriteri belirlerken son parantez i&#231;i bulunacak verinin bulundu&#287;u aral&#305;&#287;&#305; temsil eder.

Fonksiyon i&#231;indeki ($A$2:$A$6<=G2) parantezi "G S&#220;TUNUNDAK&#304; DE&#286;ER A S&#220;TUNUDAK&#304; DE&#286;ERE E&#350;&#304;T veya B&#220;Y&#220;KSE" kriterini ararken,

($B$2:$B$6>=G2) parantezide "B S&#220;TUNUNDAK&#304; DE&#286;ERE E&#350;&#304;T veya K&#220;&#199;&#220;KSE" kriterini arar.

Her iki kritere uyan sat&#305;rdaki veride (SATIR($C$2:$C$6))) parantezi ile bulunur. Peki SATIR fonksiyonu burada neden kullan&#305;lm&#305;&#351;t&#305;r. Bunuda a&#231;&#305;klamaya &#231;al&#305;&#351;ay&#305;m.

TOPLA.&#199;ARPIM fonksiyonu sadece say&#305;sal de&#287;er d&#246;nd&#252;r&#252;r, halbuki form&#252;lden getirmesi istenen C s&#252;tunundaki veriler say&#305;sal de&#287;ildir, bu sebeple fonksiyon hata verecektir. Bu hatay&#305; engellemek ve say&#305;sal bir veri d&#246;nd&#252;rmek i&#231;in bulunan verinin bulundu&#287;u sat&#305;r nosunu getirmesini uygun g&#246;rd&#252;m. Sat&#305;r ve s&#252;tun nosu belli olan bir verinin de&#287;erini bulmak art&#305;k &#231;ok kolay olacakt&#305;r. Bu i&#351;lem i&#231;inde DOLAYLI fonksiyonu kullan&#305;lm&#305;&#351;t&#305;r.

=DOLAYLI("C"&...) fonksiyonunda "..." olan yere sat&#305;r nosunun yaz&#305;lmas&#305; gerekir, i&#351;te bu de&#287;eri bize TOPLA.&#199;ARPIM fonksiyonu vermektedir.

DOLAYLI("C"&1) = DOLAYLI("C1") = C1 dir.
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Eğer veriler örnekteki gibiyse (Yani A3>B2....A6>B5 gibi)

H2 hücresine

=DÜŞEYARA(G2;$A$2:$C$7;3)

Yazabiliriz. Yalnız dezavantajı, Örnekteki en büyük rakam 15, ama biz H2'ye 20 yazarsak 15 'in karşılığı "E"'yi yazar.

Onu da şöyle aşabiliriz;

=EĞER(G2>BÜYÜK($B$2:$B$7;1);"";DÜŞEYARA(G2;$A$2:$C$17;3))
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Te&#351;ekk&#252;rler.
Say&#305;n Ali , Say&#305;n AS3434

Kulland&#305;&#287;&#305;m verier sizleri yan&#305;ltm&#305;&#351; olabilir.D&#252;&#351;&#252;nmem gerekirdi &#246;z&#252;r dilerim burada istenen iki de&#287;er aras&#305;nda kalan de&#287;eri bulmal&#305;.(de&#287;erler birbirini takip etmeyebilir bir birini sat&#305;r baz&#305;nda takip eden h&#252;crelerdeki de&#287;erlerde b&#252;y&#252;k say&#305; farkl&#305;l&#305;klar&#305; olabilir)

Bulunan de&#287;er en yak&#305;n de&#287;erde olmamal&#305;

&#199;&#246;z&#252;m i&#231;in A ve B s&#252;tunundaki de&#287;erlerin ikisinide kullanmak gerekir diye d&#252;&#351;&#252;n&#252;yorum.

Kodlar aras&#305;nda say&#305; atlayabilir.Kod aral&#305;klar&#305;da 50 (daha az , daha fazla)sat&#305;r olabilir.

&#351;&#246;yleki.

1 3 A
4 8 B
17 23 C
45 49 D
 
Son düzenleme:

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Bulunan de&#287;er en yak&#305;n de&#287;erde olmamal&#305;

&#199;&#246;z&#252;m i&#231;in A ve B s&#252;tunundaki de&#287;erlerin ikisinide kullanmak gerekir diye d&#252;&#351;&#252;n&#252;yorum.

Kodlar aras&#305;nda say&#305; atlayabilir.

&#351;&#246;yleki.

1 3 A
4 8 B
17 23 C
45 49 D
Zafer Bey say&#305; atlas&#305;n &#246;nemli de&#287;il aral&#305;&#287;&#305; biz belirledi&#287;imize g&#246;re

Bu seferde

=ARA(G2;{1;4;17;45;50};{"A";"B";"C";"D";""}) &#351;eklinde d&#252;zenleyebiliriz.

50 ve yukar&#305;s&#305; i&#231;in bo&#351; h&#252;cre yazacakt&#305;r.

Dizi 1 say&#305;s&#305; ald&#305;&#287;&#305;nda kar&#351;&#305;l&#305;&#287;&#305;ndaki A say&#305;s&#305;n&#305; oku. 3 kadar A kabul et 4 oldu&#287;unda ise
4 {1;4;17;45;50} dizisinin ikinci eleman&#305; oldu&#287;udan {"A";"B";"C";"D";""} dizisinin ikinci eleman&#305; olan B harfini getirecektir.

Di&#287;er say&#305;larda buna g&#246;re takip edecektir.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Sayın Ali çözümünüz tabiiki oluyor.

=ARA(G2;{1;4;17;45;50};{"A";"B";"C";"D";""})

burada 5 satır üzerinden hesaplama var, 50 satır olarak düşünürsek 256 karakteri geçecektir.
yani kodlar A1 hücresinden C70 kadar gidebilir.

anlatmak istediğim oydu.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Sanırım Kullanıcı Tanımlı Fonksiyon ile bu şekilde olabilir.

Burada alan1 bölümüne A kolonunu, alan2 bölümüne B kolonunu, alan3 bölümüne C kolonunu,
alan4 bölümüne ise kriteri yani ilki için G2 hücresini seçmek yeterlidir.

Kod:
Function SONUC(alan1, alan2, alan3, alan4 As Range)
For i = 1 To alan1.Count
If alan4 >= alan1(i) And alan4 <= alan2(i) Then
SONUC = alan3(i)
End If
Next i
End Function
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
De&#287;erli &#252;stadlar&#305;m&#305;z&#305;n yan&#305;nda cevap vermek bize d&#252;&#351;er mi bilmem ama, bir alternatif de ben d&#252;&#351;&#252;nm&#252;&#351;t&#252;m.. ;););)


=E&#286;ER(EHATALIYSA(DOLAYLI("C"&KA&#199;INCI(E&#286;ER(VE(G2>=A2;G2<=B2);A2;"1");A:A;0)));"MARKA YOK";DOLAYLI("C"&KA&#199;INCI(E&#286;ER(VE(G2>=A2;G2<=B2);A2;"1");A:A;0)))

san&#305;r&#305;m &#231;&#246;z&#252;me gidiyor bu da.. :):):)

sayg&#305;lar.
 
Son düzenleme:

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Merhaba

Sayın Ali çözümünüz tabiiki oluyor.

=ARA(G2;{1;4;17;45;50};{"A";"B";"C";"D";""})

burada 5 satır üzerinden hesaplama var, 50 satır olarak düşünürsek 256 karakteri geçecektir.
yani kodlar A1 hücresinden C70 kadar gidebilir.

anlatmak istediğim oydu.
Belirttiğiniz durum için;

=DÜŞEYARA(MAK(EĞER($A$2:$A$6<=G2;$A$2:$A$6));$A$2:$C$6;3;0))

CTRL+SHIFT+ENTER tuşları girilerek dizi formülüne çevrilerek yapılabilir.

B sütunundaki maksimum değerden büyük yazıldığında değer vermemesi için ise


=EĞER(G2>MAK($B$2:$B$6);"";DÜŞEYARA(MAK(EĞER($A$2:$A$6<=G2;$A$2:$A$6));$A$2:$C$6;3;0))

CTRL+SHIFT+ENTER tuşları girilerek dizi formülüne çevrilerek yapılabilir.
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Başka bir alternatif bu daha kısa oldu

=DÜŞEYARA(ARA(G2;$A$2:$A$6;$B$2:$B$6);$B$2:$C$6;2;0)

Yine 15'ten büyük değer için sonuç göstermesin istersek;

=EĞER(G2>MAK($B$2:$B$6);"";DÜŞEYARA(ARA(G2;$A$2:$A$6;$B$2:$B$6);$B$2:$C$6;2;0)) olarak kullanabiliriz.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,217
Excel Vers. ve Dili
Ofis 365 Türkçe
Fonksiyon ile çözümleri bir araya getirmeye çalıştım. Hata yaptım mı bilmiyorum. Türkçe fonksiyonları kopyalayıp yapıştırdım ve ingilizce karşılıklarını yazdım.

Sayın Zafer'in örnek dosyasında B3 hücresini kurala uymaması açısından değiştirdim. Bu duruma göre çözümleri ekli dosyada görebilirsiniz.
 

İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,104
Excel Vers. ve Dili
Excel, 365 - İngilizce
Biribirlerine benzeyen dört formülle çözüm ekteki dosyada.


..

Zafer beyin son açıklamasına dikkat etmemmişim. Onun için kullandığım yöntem bazı hallerde hata veriyor. Bu bakımdan dosyayı geri alıyorum.
 
Son düzenleme:

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Asl&#305;nda bu kadar uzun form&#252;llere gerek yok sadece

=ARA(G2;$A$2:$C$9)

form&#252;l&#252; yeterlidir.
 
Son düzenleme:

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Veriler karışık ise düzenli gitmiyorsa bu durumda daha önce verdiğim

Kod:
=EĞER(E2>MAK($B$2:$B$100);"";DÜŞEYARA(MAK(EĞER($A$2:$A$100<=E2;$A$2:$A$100));$A$2:$C$100;3;0))
formülü

CTRL+SHIFT+ENTER tuşlarına basılarak dizi formülü haline getirilir.


Örnek dosya ektedir.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Çok değerli arkadaşlarımın göndermiş olduğu çözümleri ekli dosyada 4 ayrı sayfa olarak düzenledim.

İlk mesajımda konuyu daha detaylı anlatamamamdan (düşündüğümü yazıya dökememeden)dolayı konu ile ilgili olarak değişik formüller üreten arkadaşlarımın zamanı aldığım için özür dilerim.

Yalnız bu çözümlerde daha değişik çözümler isteyen arkadaşlara alternatif olur diye düşünüyorum.

İlgilenen arkadaşlara çok teşekkür ediyorum.

Çözümlerde kullanılan formül açıklamalarını isteyen arkadaşlar dosyaya ekleyebilirler ve çözüm üretebilirler.
 

Ekli dosyalar

Son düzenleme:
Katılım
12 Nisan 2007
Mesajlar
170
Excel Vers. ve Dili
Office XP
=DÜŞEYARA(TOPLA(EĞER($G2>=$A$2:$A$6;EĞER($G2<=$B$2:$B$6;$B$2:$B$6)));$B$2:$C$6;2;0) formülü cevabı verir. Fakat A ve B sütunlarında birden fazla koşula uyan seçenek varsa çalışmaz. Zaten böyle bir şey olursa C sütunundaki değerlerin yanyana mı yazılacağı belli olmadığı için yukarıdaki formül yeterli olacaktır. Formül Ctrl+Shift+Enter ile kapatılmalıdır. Formül takip eden satırlara kopyalanmalıdır.
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Sn alibaskan veriler düzenli gitmiyor eğer öyle olsa idi

=ARA(G2;$A$2:$C$9)

formülü yeterli idi. Uzun formüle gerek yok.

1 3 A
6 4 B şeklindede olması sözkonusudur.
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
basit

&#252;stadlar belki komik gelebilir ama &#351;u form&#252;l olmazm&#305;yd&#305; >>
=+E&#286;ER(YADA((G2>=A2);(G2<=B2));C2;"")
bu form&#252;l a&#351;a&#287;&#305;ya do&#287;ru kopyalan&#305;rsa sonucu g&#246;r&#252;rs&#252;n&#252;z...
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Sn emre tek bir formül ile bulmaya çalıştığımız için ve Sn zafer'in bir başka istediği ise verilerin büyük küçük sırası ile gitmemeside sözkonusudur.

15'inci mesajımdaki örnek dosyayı indirip bakarsanız soru dahada netleşecek sanırım.

Saygılar.
 
Üst