MATCH fonksiyonu ile dizideki 2 sıra

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,151
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,
Ekli dosyada B sütununda isimler yazılı

Kod:
=MATCH("Ahmet";B$2:B$103;0)
fonksiyonu ile bu dizideki en üst satırdan başlayarak aramakta ve ilk denk gelen satır numarasını vermektedir.

Benim istediğim Aramada ilk bulunan satırın atlanması ve 2. seferde denk gelen "Ahmet" adının bulunması,

Örnek; ekli dosyada 2 sonucu yerine 7 sonucunun alınması,


iyi çalışmalar.
 

Ekli dosyalar

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


=KAÇINCI("Ahmet";B$2:B$103;1)+1





Eşleştir_tür -1, 0 ya da 1 sayısıdır. Eşleştir_tür, Microsoft Excel'in aranan_değeri aranan_dizideki değerlerle nasıl eşleştirdiğini belirler.
  • Eşleştir_tür 1 ise, KAÇINCI fonksiyonu aranan_değerden küçük ya da eşit olan en büyük değeri bulur. Aranan_dizi artan sırada yerleştirilmelidir: ...-2, -1, 0, 1, 2, ...A-Z, YANLIŞ, DOĞRU.
  • Eşleştir_tür 0 ise, KAÇINCI fonksiyonu aranan_değere tam olarak eşit olan ilk değeri bulur. Aranan_dizi herhangi bir sırada olabilir.
  • Eşleştir_tür -1 ise, KAÇINCI fonksiyonu aranan_değerden büyük ya da eşit olan en küçük değeri bulur. Aranan_dizi azalan sırada yerleştirilmelidir: DOĞRU, YANLIŞ, Z-A, ...2, 1, 0, -1, -2, ..., vb.
  • Eşleştir_tür belirtilmezse, 1 olduğu varsayılır
 
Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
tum siralari bulmak isteyeceginizi dusunerek;

C2`ye Ahmet yazdiginizi dusunerek..

2`yi bulmak icin;
=SMALL(IF(ISNUMBER(FIND($C$2,$B$2:$B$103)),MATCH(ROW($B$2:$B$103),ROW($B$2:$B$103)),""),ROW(A1))

6`yi bulmak icin;
=SMALL(IF(ISNUMBER(FIND($C$2,$B$2:$B$103)),MATCH(ROW($B$2:$B$103),ROW($B$2:$B$103)),""),ROW(A2))

32,45,55... bulmak icin formulu cekiniz..
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,151
Excel Vers. ve Dili
Office 2013 İngilizce
tum siralari bulmak isteyeceginizi dusunerek;

C2`ye Ahmet yazdiginizi dusunerek..

2`yi bulmak icin;
=SMALL(IF(ISNUMBER(FIND($C$2,$B$2:$B$103)),MATCH(ROW($B$2:$B$103),ROW($B$2:$B$103)),""),ROW(A1))

6`yi bulmak icin;
=SMALL(IF(ISNUMBER(FIND($C$2,$B$2:$B$103)),MATCH(ROW($B$2:$B$103),ROW($B$2:$B$103)),""),ROW(A2))

32,45,55... bulmak icin formulu cekiniz..
Sn mustafaine formülü ekli dosya üzerine işleyebilir misiniz,

teşekkürler,
iyi çalışmalar.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,151
Excel Vers. ve Dili
Office 2013 İngilizce
teşekkürler!
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,151
Excel Vers. ve Dili
Office 2013 İngilizce
Sn Mustafa,

isimlerin sütunun yerine satırlarda yazılı olduğu durumlarda, ekli dosya Sheet2' de olduğu gibi;

aynı fonksiyonu nasıl uygulayabiliriz?

Yardımlarınız için şimdiden teşekkürler,

kolay gelsin.
 

Ekli dosyalar

Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
sayfa 2`nin B5 hucresinde;

Kod:
=SMALL(IF(ISNUMBER(SEARCH($A$5,$B$2:$CY$2)),MATCH(COLUMN($B$2:$CY$2),COLUMN($B$2:$CY$2)),""),COLUMN(A1))
dizi formulu seklinde uygulayip saga dogru cekiniz..
 
İ

İhsan Tank

Misafir
Sn Mustafa,

isimlerin sütunun yerine satırlarda yazılı olduğu durumlarda, ekli dosya Sheet2' de olduğu gibi;

aynı fonksiyonu nasıl uygulayabiliriz?

Yardımlarınız için şimdiden teşekkürler,

kolay gelsin.
Merhaba
Dizi formülüdür.
B5 hücresine yazın
Kod:
Türkçe
=EĞER(SATIRSAY($B$5:B5)>EĞERSAY($2:$2;$A$5);"";İNDİS($1:$1;KÜÇÜK(EĞER($2:$2=
$A$5;SÜTUN($1:$1)-SÜTUN($A2)+1);SATIRSAY($B$5:B5))))
İngilizce
=IF(ROWS($B$5:B5)>COUNTIF($2:$2;$A$5);"";INDEX($1:$1;SMALL(IF($2:$2=
$A$5;COLUMN($1:$1)-COLUMN($A2)+1);ROWS($B$5:B5))))
Şeklinde deneyin
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,151
Excel Vers. ve Dili
Office 2013 İngilizce
sayfa 2`nin B5 hucresinde;

Kod:
=SMALL(IF(ISNUMBER(SEARCH($A$5,$B$2:$CY$2)),MATCH(COLUMN($B$2:$CY$2),COLUMN($B$2:$CY$2)),""),COLUMN(A1))
dizi formulu seklinde uygulayip saga dogru cekiniz..
Sn Mustafa verdiğiniz formülü dosya üzerinde uygulama yapabilir misiniz,

çok teşekkürler, iyi çalışmalar.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,151
Excel Vers. ve Dili
Office 2013 İngilizce
dosyaniz ektedir, uygulayamama sebebiniz nedir acaba?
Sn Mustafa uygulayamama nedenini şimdi anladım,

sizin gönderdiğiniz dosyada formülün başlangıcı ile sonunda { } karakterleri var,

bu {} karakterlerin esprisi nedir acaba?

2. olarakta bu fonksiyonun açılımını anlatabilir misiniz,

formülün
Kod:
MATCH(COLUMN($B$2:$CY$2);COLUMN($B$2:$CY$2))
bu kısmını anlayamadım aynı ifadeler
Kod:
COLUMN($B$2:$CY$2)
iki sefer yazılmış durumda;

teşekkürler,
iyi çalışmalar...
 

Ekli dosyalar

Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
{ } karakterleri dizi formulu oldugunu gostermektedir, dizi formulleri formulden cikarken ctrl + shift + enter kombinasyonu ile cikmaniz gerekir aksi halde deger hatasi verecektir..

oncelikle ISNUMBER(SEARCH($A$5,$B$2:$CY$2)) kismi ile iliskilendirmek gerekli sanirim formulu anlatirken.. Search bir dizi icerisinde $B$2:$CY$2, $A$5 degerini arama yaparken sirasiyla false, true gibi degerler alir. Bunun sebebi a5 bulundugunda search fonksiyonunun buldugu degerde ilk harften bulmasindan dolayi fonksiyon disina cikardigi 1 sayisinin isnumber fonksiyonuna true, false seklinde cevap vermesidir..

MATCH(COLUMN($B$2:$CY$2),COLUMN($B$2:$CY$2)) formulunde ise kac tane satirin birbiri ile karsilasirsa karsilassin ayni satirlar karsilacagindan dizi olarak 1 den baslayip satir sayisi kadar uzanan bir siralama cikarir..

ikisi birlestiginde ise formul her bir true olan isnumber fonksiyon sonucu icin diziden match fonksiyonunun urettigi bir sira degerini alir..

Daha sonra formul sonunda COLUMN(A1) olarak yazdigimiz deger yana cektikce cogaldigindan 1. 2. 3.... gibi degerler alarak en kucuk karsilasan match sirasindan siz cektikce bir sonrakini alarak devam eder. Zaten birimde istegimiz burada match sayisi..

Anlatimim cok iyi degildir ama yinede ilgilenmenizi cok isterim, umarim anlatabilmisimdir.. formul icerisinde kesinlikle her bir fonksiyonun ne yaptigini anlamaniz size cok yarar saglayacaktir. kolay gelsin..
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,151
Excel Vers. ve Dili
Office 2013 İngilizce
Sn Mustafa Çok teşekkürler,
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,151
Excel Vers. ve Dili
Office 2013 İngilizce
...........................................
oncelikle ISNUMBER(SEARCH($A$5,$B$2:$CY$2)) kismi ile iliskilendirmek gerekli sanirim formulu anlatirken.. Search bir dizi icerisinde $B$2:$CY$2, $A$5 degerini arama yaparken sirasiyla false, true gibi degerler alir. Bunun sebebi a5 bulundugunda search fonksiyonunun buldugu degerde ilk harften bulmasindan dolayi fonksiyon disina cikardigi 1 sayisinin isnumber fonksiyonuna true, false seklinde cevap vermesidir..
...............................................
...............................................

formul icerisinde kesinlikle her bir fonksiyonun ne yaptigini anlamaniz size cok yarar saglayacaktir. kolay gelsin..
Sn Mustafa her bir fonksiyonu anlamak adına ekli dosyada SEARCH fonksiyonundan başladım.
Kod:
=SEARCH($A$5,$B$2:$CY$2)
Formül içeriğindeki yazım aynı olmasına karşın formülün yazıldığı hücreye göre sonuç değişim göstermektedir (1, #VALUE!) , bu durumu anlayamadım.

Yardımcı olursanız sevinirim...

iyi çalışmalar.
 

Ekli dosyalar

Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
1 cikmasinin nedeni 1. karakterde bulmus olmasi ahmet`i ahmette ararken birinci karakterde bulmus oluyor, fakat arama yaparken sadece 2 6 32 45.. gibi siralarda 1 sonucu cikacaktir.. cunku o siralarda ahmet var..

o yuzden isnumber parantezinde calistiriyor. Isnumber sonuclari ise TRUE, False seklinde ciktigindan sonuclar

False, True, False, False, False, True seklinde devam ediyor ve 2. ve altincida True veriyor..

Match formulu ise ayni seyleri karsilastirdigindan sadece 1,2,3,4,5... seklinde bir siralama yapiyor.

Bu durumda asagidaki gibi bir karsilasma oluyor

False, True, False, False, False, True
1 2 3 4 5 6

Ve true olanlar sonuc disina cikiyor; yani 2 ve 6 ve sonrakiler tabiki..

daha sonrasi ise small fonksiyonunun islevi olarak sutun (column) satirina gore istenen sayinci kadar kucuk olan sayi fonksiyon disina cikiyor..

1. sutun ise 2, 2. sutun ise 6 sonucu gibi..
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,151
Excel Vers. ve Dili
Office 2013 İngilizce
..........................................
Match formulu ise ayni seyleri karsilastirdigindan sadece 1,2,3,4,5... seklinde bir siralama yapiyor.

Bu durumda asagidaki gibi bir karsilasma oluyor

False, True, False, False, False, True
1 2 3 4 5 6

Ve true olanlar sonuc disina cikiyor; yani 2 ve 6 ve sonrakiler tabiki..

daha sonrasi ise small fonksiyonunun islevi olarak sutun (column) satirina gore istenen sayinci kadar kucuk olan sayi fonksiyon disina cikiyor..

1. sutun ise 2, 2. sutun ise 6 sonucu gibi..
Sn Mustafa çok teşekkürler,

SEARCH fonksiyonunu anladım sayılır,

şimdi MATCH fonksiyonuna bakıyorum;


Kod:
=MATCH(COLUMN($B$2:$CY$2);COLUMN($B$2:$CY$2))
şeklinde yazdığım zaman bütün hücrelerde #N/A sonucunu veriyor. Yukarıda belirttiğiniz

1 2 3 4 5 6

şeklinde bir sıralama nasıl oluşuyor?

Yardımlarınız için size minnettarım.

kolay gelsin, iyi çalışmalar.
 

Ekli dosyalar

Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
Merhaba Tamer Bey,

Match fonksiyonunun bu kullaniminda yaptigimiz sey belirli bir araligin sutun sayilarini bir biri ile karsilastiriyoruz..

Ornegin 2. sutundan 10. sutuna kadar karsilastirdigimizi dusunelim. Oncelikle 2 ayni veriyi birbiri ile karsilastirirsak sonuc birbirirne esit oldugudur.. Yani formulumuzun sureci su sekilde gerceklesicektir..

{2,3,4,5,6,7,8,9,10},{2,3,4,5,6,7,8,9,10} seklinde sutun sayilari alinacak ve sonuc olarak 1. esit 2. esit seklinde {1,2,3,4,5,6,7,8,9} sonucunu doguracaktir..

Formulun bir sonraki adimi ise search formulunden cikardigi veriyi yani {false,True,false,false,false,True,false,false,false} seklindeki veriyi {1,2,3,4,5,6,7,8,9} ile karsilastirarak {"",2,"","","",6,"","",""} sonucunu cikarmasi olacaktir.

En soon ise bu formul small fonksiyonu icerisinde small({"",2,"","","",6,"","",""},1) icin 2 small({"",2,"","","",6,"","",""},2) icin 6 sonucunu doguracaktir..

Umarim anlatabilmisimdir..
 
Üst