nasıl formül yazılır?

Katılım
14 Şubat 2008
Mesajlar
132
Excel Vers. ve Dili
2003 tr
sevgili excel.web.tr üyeleri !!!!!
yardımlarını eksik etmeyen değerli üyeler.!!!!
bilgisizliğimi mazur görün ama sitede cevapladığınız sorulara ait formülleri nasıl yazdığınızı çok merak ediyorum.
örneğin ;
=DOLAYLI("b"&KÜÇÜK(EĞER($B$1:$B$37<>"";EĞER(EĞERSAY($A$1:$A$37;$B$1:$B$37)=0;SATIR($B$1:$B$37);SATIR()+SATIRSAY($B$1:$B$37)));SATIR(B8)))

veya

İNDİS($A$2:$A$13;KÜÇÜK(EĞER($C$2:$C$13=J13;SATIR($C$2:$C$13)-SATIR($C$2)+1);EĞERSAY($J$2:J13;J13)))

veya

=EĞER(SATIR()-SATIR(E$3)+1<=$F$1+$E$1;İNDİS(A$3:A$13;KAÇINCI(SATIR()-SATIR(E$3)+1;$C$3:$C$13;0));"")

vs.vs.vs.

bu gibi formülleri teker teker formül çubuğuna mı yazıyorsunuz? yoksa fx yazan yerden çıkan şablondan mı seçiyorsunuz çok merak ediyorum ve de bu formül mantığını nasıl uyguluyorsunuz, günlerden beridir excel kitaplarına bakıyorum, eğitim CD' lerine bakıyorum ama hiçbirinde böyle içiçe formül veren bir kitap yok. formül yazmanın mantığını bana da sözlerseniz en azından soracağım soru sayısı da azalacaktır.elinde bununla ilgili herhangi bir kaynağı olan sitede paylaşabilir mi? yada bana önereceğiniz bir kitap varmı ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,295
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Verdi&#287;iniz form&#252;lleri yazmak i&#231;in bir bilgi birikimi gerekmektedir. Buda zamanla oluyor tabiki. Basit tablolardan karma&#351;&#305;k tablolara ge&#231;i&#351; yapt&#305;k&#231;a b&#246;yle form&#252;llere ihtiya&#231; duyuyorsunuz. Forumu takip edip bol bol tekrar yaparsan&#305;z form&#252;l mant&#305;klar&#305;n&#305; rahatl&#305;kla kavrars&#305;n&#305;z. Ayr&#305;ca dersane b&#246;l&#252;m&#252;nde baz&#305; uygulamalar haz&#305;rlanm&#305;&#351;t&#305;r. Bunlar&#305; detayl&#305;ca inceleminizi &#246;neririm.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
Nasıl formül yazılır?

Nasıl Formül yazılır?

İçiçe pekçok formülü yazabilmek için:

a) İyi derecede matematik bilmek.

b) Fonksiyonların ne işe yaradıkları ile söz dizimlerini iyi bilmek.

c) Problem çözme tekniği konusunda deneyimli olmak.

d) Çok karmaşık bir formül yazılacaksa önce parça parça hücrelere yazmak daha sonra yerine koyma yöntemi ile formülü tek parça haline getirmek.

e) İleride bir yerde kullanılacak düşüncesi ile bazı kalıp formüller üretmek veya üretilmiş formülleri, saklamak ve bunlardan yararlanmak.

f) Başkalarının ürettiği formülleri inceleyip kullandıkları çözüm yolu ile mantığını kavramaya çalışmak.

g) Çok pratik yapmak ve problem çözmek veya çözülmüş problemleri irdelemek.

gibi bazı hususları saymak mümkündür.


ÖRNEK:1

=INDIRECT(ADDRESS(2;MATCH(B2;A2:A13;0)+2))
=DOLAYLI(ADRES(2;KAÇINCI(B2;A2:A13;0)+2))


Formülünü parça parça ele alalım.

INDIRECT - DOLAYLI
Metin dizesiyle belirlenen başvuruyu verir. Başvurular, içerikleri görüntülenmek üzere derhal değerlendirilir.

Sözdizimi:
DOLAYLI(başv_metni;a1)
INDIRECT(ref_text;a1)
[/B]

Başv_metni A1-stili başvuru, R1C1-stili başvuru, başvuru olarak tanımlanmış bir ad veya metin dizesi olarak bir hücreye yapılan başvuruyu içeren bir başvurudur.
• Başv_metni geçerli bir hücre başvurusu değilse, DOLAYLI fonksiyonu #BAŞV! hata değeri verir.
• Başv_metni bir başka çalışma kitabına başvuruyorsa (dış başvuru), diğer çalışma kitabı açık olmalıdır. Kaynak çalışma kitabı açık değilse, DOLAYLI #BAŞV! hata değeri verir.

A1 başv_metni hücresinde hangi tip başvurunun yer aldığını belirleyen mantıksal değerdir.
• A1 DOĞRU ise veya belirtilmemişse, başv_metni A1-stili başvuru olarak yorumlanır.
• A1 YANLIŞ ise, başv_metni R1C1-stili başvuru olarak yorumlanır .

Temel formülümüz:
DOLAYLI(başv_metni;a1)
INDIRECT(ref_text;a1)


Şimdi bize bir hücre adresi gerekir. Buna geçmeden önce ADDRESS – ADRES fonksiyonuna açıklamasına bakalım.


ADDRESS - ADRES

Verilen belirli satır ve sütun sayıları ile bir hücre adresini metin olarak oluşturur.

Sözdizimi:
ADRES(satır_sayısı; sütun_sayısı; mutlak_sayı; a1; tablo_metni)
ADDRESS(row_num,column_num;abs_num;a1;sheet_text)


Satır_sayısı hücre başvurusunda kullanılacak satır sayısıdır.
Sütun_sayısı hücre başvurusunda kullanılacak sütun sayısıdır.
Mutlak_sayı sonuç olarak verilecek başvurunun türünü belirler.
Mutlak_sayı Bu başvuru türünü verir
1 veya belirtilmemiş Mutlak
2 Mutlak satır; göreceli sütun
3 Göreceli satır; mutlak sütun
4 Göreceli

A1 A1 veya R1C1 başvuru stilini belirten mantıksal bir değerdir. Bu durumda a1 DOĞRU veya atlanmışsa, ADRES, A1 stili bir başvuru getirir; YANLIŞ ise ADRES, R1C1 stili bir başvuru getirir.
Tablo_metni dış başvuru olarak kullanılacak işlem tablosunun adını belirten metindir. Tablo_metni belirtilmezse, tablo adı kullanılmaz.


Formülümüze göre satır sayısı belliymiş. O da 2:

DOLAYLI(ADRES(2; sütun_sayısı))
INDIRECT(ADDRESS(2;column_num))


Şeklini aldı.

Aradığımız sütun sayısı belli değil. Şimdi bize sütun sayısını verecek bir eşleştirme formülü gerekir bu da MATCH – KAÇINCI fonksiyonudur.

Fonksiyonun açıklamasına bakalım:

MATCH - KAÇINCI

Bir dizide belirtilen sıradaki, belirtilen değerle eşleştirilen öğenin göreli konumunu verir.

Sözdizimi:
KAÇINCI(aranan_değer;aranan_dizi;eşleştir_tür)
MATCH(lookup_value;lookup_array;match_type)


Aranan_değer tabloda bulunmasını istediğiniz değeri bulmak için kullandığınız değerdir.
• Aranan_değer, aranan_dizide bulmak istediğiniz değerdir. Örneğin, telefon defterinde numara ararken, aranan değer olarak kişinin adını kullanırsınız, telefon numarası ise bulmak istediğiniz değerdir.
• Aranan_değer bir değer (sayı, metin ya da mantıksal değer) ya da bir sayı, metin ya da mantıksal değere yapılan bir hücre başvurusu olabilir.
Aranan_dizi olası aranan değerleri içeren bitişik bir hücre aralığıdır. Aranan_dizinin dizi ya da dizi başvurusu olması gerekir.
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.

Yukarıdaki formüle göre; B2 hücresindeki değeri A2:A13 aralığında arayarak bize göreceli konumunu verecektir. Bunu sütun sayısı olarak kullanacağımızdan, bu göreceli konum bizim için yeterli ise mesele yok. Yeterli değilse ne kadar eklememiz gerekecek ona bakmamız gerekir. Açıklanması istenen formüle göre bu 2 imiş.

=MATCH(B2;A2:A13;0)
=KAÇINCI(B2;A2:A13;0)


Bu nedenle; buna 2’yi ekliyoruz.

=MATCH(B2;A2:A13;0)+2
=KAÇINCI(B2;A2:A13;0)+2


Şimdi son olarak;

DOLAYLI(ADRES(2; sütun_sayısı))
INDIRECT(ADDRESS(2;column_num))


Bu formüle sütun için eşleştirecek değerleri koyarsak, formülümüz:


=INDIRECT(ADDRESS(2;MATCH(B2;A2:A13;0)+2))
=DOLAYLI(ADRES(2;KAÇINCI(B2;A2:A13;0)+2))


Şeklini alacaktır.

....................................


ÖRNEK:2

1. Tablo içindeki herhangi bir verinin adresini tespit etmek için kullanılan bir formülü ele alalım.

=INDIRECT(REPLACE(ADDRESS(SUM(IF(B2:I15=F24;ROW(B2:I15)));SUM(IF(B2:I15=F24;COLUMN(B2:I15)));4);1;1;"J"))


Önce adres fonksiyonuna bakalım:

ADDRESS - ADRES

Verilen belirli satır ve sütun sayıları ile bir hücre adresini metin olarak oluşturur.

Sözdizimi:
ADRES(satır_sayısı; sütun_sayısı; mutlak_sayı; a1; tablo_metni)
ADDRESS(row_num,column_num,abs_num;a1;sheet_text)


Satır_sayısı hücre başvurusunda kullanılacak satır sayısıdır.
Sütun_sayısı hücre başvurusunda kullanılacak sütun sayısıdır.
Mutlak_sayı sonuç olarak verilecek başvurunun türünü belirler.
Mutlak_sayı Bu başvuru türünü verir
1 veya belirtilmemiş Mutlak
2 Mutlak satır; göreceli sütun
3 Göreceli satır; mutlak sütun
4 Göreceli

Tablodaki satır sayısını bulmak için:

SUM(IF(B2:I15=F24;ROW(B2:I15)))

Dizi formülünü veya;

SUMPRODUCT((B2:I15=F24)*(ROW(B2:I15)))

formülünü kullanabiliriz.

Aynı mantıkla bir de sütun sayısını bulmaya çalışalım:

SUM(IF(B2:I15=F24;COLUMN(B2:I15)))

Dizi formülü veya;


SUMPRODUCT((B2:I15=F24)*(COLUMN(B2:I15)))
Formülünü kullanabiliriz.


Şimdi bu formülleri

ADRES(satır_sayısı; sütun_sayısı; mutlak_sayı; a1; tablo_metni)
ADDRESS(row_num,column_num;abs_num;a1;sheet_text)


Temel formülde yerlerine koyalım.

=ADDRESS(SUM(IF(B2:I15=F24;ROW(B2:I15)));SUM(IF(B2 :I15=F24;COLUMN(B2:I15)));4)[/B]

Dizi formülünü veya;

=ADDRESS(SUMPRODUCT((B2:I15=F24)*(ROW(B2:I15)));SU MPRODUCT((B2:I15=F24)*(COLUMN(B2:I15)));4)

Şeklini alır.
Bu formülle Tablo içindeki örneğin 182 verisinin adresi olan C8’i verir.

Benim aradığı değer J sutününda bulunmaktadır. O zaman C’yi J yapmam yeterli olacaktır.

2. Bunu yapmak için REPLACE fonksiyonundan yararlanabiliriz.

REPLACE - DEĞİŞTİR
Bir metnin yerine başka bir metin koyar.

Sözdizimi
DEĞİŞTİR(eski_metin; başlangıç_sayısı; sayı_karakterler; yeni_metin)
REPLACE(old_text;start_num;num_bytes;new_text)


Eski_metin, içinde bazı karakterleri değiştirmek istenilen metindir.
Başlangıç_sayısı, yerine yeni_metin'i koymak istenilen eski_metin'de karakterin konumudur
Sayı_karakterler, yerine yeni_metin'i koymak istenilen eski_metin'de karakterlerin sayısıdır
Yeni_metin, eski_metin'deki karakterlerin yerini alacak metindir

Bu formülü bunu içine yerleştirirsem, formül aşağıdaki şekli alacaktır.

=REPLACE(ADDRESS(SUM(IF(B2:I15=F24;ROW(B2:I15)));S UM(IF(B2:I15=F24;COLUMN(B2:I15)));4);1;1;"J")


Şeklinde bir dizi formülü veya,

=REPLACE(ADDRESS(SUMPRODUCT((B2:I15=F24)*(ROW(B2:I 15)));SUMPRODUCT((B2:I15=F24)*(COLUMN(B2:I15)));4) ;1;1;"J")

Şeklinde olur. Bu formüller J8 gibi bir değer üretecek. Oysa bana J8’in içerdiği değer lazım.

3. Bu kez de INDIRECT fonksiyonundan yararlanabiliriz.

INDIRECT - DOLAYLI
Metin dizesiyle belirlenen başvuruyu verir. Başvurular, içerikleri görüntülenmek üzere derhal değerlendirilir. Formülün kendisini değiştirmeden formül içindeki hücre başvurusunu değiştirmek isterseniz, DOLAYLI fonksiyonunu kullanın.

Sözdizimi:
DOLAYLI(başv_metni;a1)
INDIRECT(ref_text;a1)


Formülümüzü bunun içine yazarsak;

=INDIRECT(REPLACE(ADDRESS(SUM(IF(B2:I15=F24;ROW(B2 :I15)));SUM(IF(B2:I15=F24;COLUMN(B2:I15)));4);1;1; "J"))

Şeklinde dizi formülü veya;

=INDIRECT(REPLACE(ADDRESS(SUMPRODUCT((B2:I15=F24)* (ROW(B2:I15)));SUMPRODUCT((B2:I15=F24)*(COLUMN(B2: I15)));4);1;1;"J"))

Şeklinde bir formülle Tablodaki, 182 değerine J sütununda karşılık gelen 0024 sonucu bulunur.

.


yurttas...
 
Son düzenleme:
Katılım
26 Şubat 2008
Mesajlar
3
Excel Vers. ve Dili
tr
Peki hocam exel e nerden ba&#351;lamal&#305;y&#305;m ?

tab&#305;k&#305; b&#305;raz c&#305;z&#305;m vs.vs. tablolama yap&#305;yorum... ama kodlama veya fr&#246;m&#252;l hi&#231; yapmad&#305;m..

Ayr&#305;ca sormak istedi&#287;im ba&#351;ka bir konu var.. exel de her&#351;ey yap&#305;lab&#305;l&#305;rm&#305;
 

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
442
Excel Vers. ve Dili
2007 Türkçe
2010 Türkçe
2013 Türkçe
OFİS 365
Altın Üyelik Bitiş Tarihi
09.10.2029
Peki hocam exel e nerden başlamalıyım ?

tabıkı bıraz cızım vs.vs. tablolama yapıyorum... ama kodlama veya frömül hiç yapmadım..

Ayrıca sormak istediğim başka bir konu var.. exel de herşey yapılabılırmı
Sayın yurttaşın affına sığınarak; Verdiği örneklerin ileri düzey kullanıcılar için olduğunu, biryerden başlamanız için bence naçizane fikrim yaptığınız iş için küçük tablolar yaparak yola çıkın. Nekadar çok tablo okadar geniş düşünme yelpazesi demektir. Sıkıldıkça fonksiyonları keşfedersiniz.

Sonra bunları birbirleriyle birleştirerek farklı tablolar oluşturun. Fonksiyonların ne işe yaradığını muhtelif kitaplardan öğrenebilirsiniz ama bence bu site size daha faydalı olacaktır düşüncesindeyim.

Ama önce sabır sonra uzun uzun zaman ayırma ve cok sayıda örnek yapma ile olabilecek şeyler. Bir bakmısınız siz farkına varmadan fonksiyonları kullanmaya başlamışsınız.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Nasıl Formül yazılır?

İçiçe pekçok formülü yazabilmek için:

a) İyi derecede matematik bilmek.

b) Fonksiyonların ne işe yaradıkları ile söz dizimlerini iyi bilmek.

c) Problem çözme tekniği konusunda deneyimli olmak.

d) Çok karmaşık bir formül yazılacaksa önce parça parça hücrelere yazmak daha sonra yerine koyma yöntemi ile formülü tek parça haline getirmek.

e) İleride bir yerde kullanılacak düşüncesi ile bazı kalıp formüller üretmek veya üretilmiş formülleri, saklamak ve bunlardan yararlanmak.

f) Başkalarının ürettiği formülleri inceleyip kullandıkları çözüm yolu ile mantığını kavramaya çalışmak.

g) Çok pratik yapmak ve problem çözmek veya çözülmüş problemleri irdelemek.

merhaba
syn Yurttaş çok değerli bilgiler ve yöntem göstermiş. bir maddede ben ekleyeyim.

h) meraklı ve öğrenmeye istekli olmak.

9:30~18:30 saatler arasında bu siteyi sürekli takip ederim, konuyu bilsem dahi farklı yaklaşımlarla çözülmüş örnekleri arşivlerim. iyi düzeyde excel bilmek için matematik bilgisi çok önemli. özellikle mühendislik formasyonu almış arkadaşlarımız karmaşık problemlerin üzerinden çok basit bir yol bularak çıkabilmektedir. su sitede, bir soru üzerinde uzun uzun çözüm yolları aramış, farklı ve karmaşık yollarla çözüme ulaşmıştık. syn Ali hepimizin bildiği bir fonksiyonun çok çok basit uyarlaması ile sorunu kökünden çözmüştü. meraklısı için ilgili link http://www.excel.web.tr/showthread.php?t=43602

sonuçta excel, basit ifadeyle, hesap tablosu oluşturma değil mi? ne kadar çok matematik bilirsek okadar kolay çözüm bulunur. çok iyi matematik bilmek için türev, integral, diferansiyel denklem vs çözümü bilmekde gerekmiyor.
 
Üst