Dolaylı fonksiyonu ile ilgili açıklama

Katılım
25 Mart 2009
Mesajlar
62
Excel Vers. ve Dili
office 2000, visual basic
Ekteki dosyayı forumdan indirdim. Anlamadığım bir nokta var. Açık yeşil alanlarla işaretlediğim bölümlerde aynı formül olmsına rağmen aynı sayfada farklı sonuçlar veriyor. Bunun açıklamasının yanında aslında tüm sayfa hakkında yardım metni yazarsanız çok sevinirim. Güzel bir fonksiyon ama anlamakta zorlandım.
 

Ekli dosyalar

Korhan Ayhan

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

Formülde aktif satır değeri ve 6 değeri parametrik olarak kullanılmıştır. A sütunundaki değerlerde farklı renklerde belitirlmiştir. Her renk grubunda 6 satır veri vardır. Her veri grubu 6 sütuna dağıtılmıştır.

Buradaki amaç A sütununda alt alta yazılmış veriyi farklı bir biçimde formülle tablolamaktır. Bu tarz verilerde dolaylı,satır ve sütun formülleri ile çok esnek tablolamalar yapabilirsiniz.
 
Katılım
25 Mart 2009
Mesajlar
62
Excel Vers. ve Dili
office 2000, visual basic
Peki

=DOLAYLI("A"&6*(SATIR()-2)+1)

sayfadaki bu formülü tek tek açıklayabilir misiniz anlamam konusunda belki faydası olur. Hala çözebilmiş değilim
 
Katılım
25 Mart 2009
Mesajlar
62
Excel Vers. ve Dili
office 2000, visual basic
artı

aynı formülü aşağıya yazdığımda yine ALİ değerini almam gerekmez miydi?
 

Merhum İdris SERDAR

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

=DOLAYLI("A"&6*(SATIR()-2)+1)

sayfadaki bu formülü tek tek açıklayabilir misiniz anlamam konusunda belki faydası olur. Hala çözebilmiş değilim
.

indirect-dolaylı fonksiyonu

Örneği buradaki çalışmamdan almışsınız...

=DOLAYLI("A"&6*(SATIR()-2)+1) formülünü açıklaycacağım:

1. İşlemin temeli =DOLAYLI(hücre adresi)

2. "A"&6*(SATIR()-2)+1 formülünde A sütun harfi için kullanılmıştır. Şimdi bize satır sayısı lazım. Satır sayısını 6*(SATIR()-2)+1 formülü bize sağlayacaktır. Örneğimizde her isim ve altındaki bilgiler ile diğer isim ve bilgilere geçerken aralarında 6 satırlık bir fark bulunduğu görülür. Bu bilgilerin her birisi bulunduğu satır numarasına bağımlı bulunmaktadır. Ayrıca veriyi koyacağımz yerin satır numarası da önemlilik kazanmaktadır.

3. Bu nedenle, SATIR() fonksiyonunu burada kullanıyoruz. Şimdi burada 6 her kişiye ait bilgilerin satır adedi, 2 verinin konulduğu yerin başlamış olduğu satır sayısı. Örneğin Ali'yi 13'üncü satıra almak istiyorsanız, formülü: =DOLAYLI("A"&6*(SATIR()-13)+1) şeklinde yazmanız gerekir.

4. Düşey olan bu bilgileri yatay, yanyana yazmamız için birinci sütun için 1 ikinci için 2.... ekliyoruz. Bunun yerine, Eklediğimiz rakamlar yerine formülü yana çektiğimizde otomatik artış için SÜTUN fonksiyonu kullanırsak formülümüz bu şekilyle daha anlamlı olur. Ve o zaman formül :=DOLAYLI("A"&6*(SATIR()-2)+SÜTUN(A1)) şeklinde olur.

Umarım açıklayabilmişimdir.

.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
meşhur hoca nasreddin fıkrasındaki gibi, damdan düşen biri olarak damdan düşen birine -min gayri haddin- öğrendiklerimi aktarmaya çalışayım.

sayın maestro,


bazı program uygulamalarından txt, csv, vb formatlarda veri geldiğini varsayalım. bunu excele aktardığımızda ekli uygulama dosyasındaki gibi tüm verilerin tek bir sütunda (A) olduğunu görüyoruz. ama bizim ihtiyacımız D:I sütunlarındaki gibi bir tablo.

bu takdirde tek tek kopyala yapıştır yapabileceğimiz gibi, =A1, =A2, vb diyerek te bu tabloyu oluşturabiliriz. fakat bu çok zaman alacak, basit bir tablo için saatlerce uğraşmak zorunda kalacağız.

işte burada excel'in nimetlerinden faydalanmak mümkün. buraya kadar olan kısmı zaten hepimiz biliyoruz, sadede gelelim :)

veriye baktımızda, bir kişiye ait 6 adet bilginin aynı sırada alt alta yazılmış olduğunu görüyoruz. burası başlangıç noktamız.

D2 hücresine =DOLAYLI("A1") veya INDIRECT("A1") yazarsak dönen verinin Ali olduğunu göreceğiz. dolayısı ile bu fonksiyon için bir sütun (bu örnekte A) ve bir de satır bilgisine (bu örnekte 1) ihtiyaç duyuyoruz.

DOLAYLI fonksiyonunun, doğru adresi verdiğimiz takdirde o adresteki veriyi getireceğini biliyoruz. veriler A sütununda. dolayısı ile A sütun bilgisi standart olacak ve tüm verileri döndürmek için kullanacağız. şimdi bize gereken tasarladığımız tobloya uyacak şekilde satır numarasını belirlemek.

ilk formülümüzü D2 hücresine yazacağız. istediğimiz A1'in 1'ini bulmak. başlangıç noktamız diyerek 6 sayısını bulmuştuk. SATIR fonksiyonunun formülün giridilği hücrenin satır numarasını verdiğini biliyoruz. D2 hücresine yazacağım SATIR() fonksiyonu bana 2 değerini, G8'e yazacağım ise 8 değerini verecektir.

D2 deki formüle dönecek olur isek: =DOLAYLI("A"&6*(SATIR()-2)+1)
A'yı zaten biliyoruz. & işaretini, malum, birleştirmek için kullanıyoruz. kalan "6*(SATIR()-2)+1"in ise bize sırayla isimler için 1, 7, 13, 19, 25 (soyisimler için 2, 8, 14, 20, 26 vb) değerlerini vermesini istiyoruz.

D2'ye doğrudan =SATIR() yazsa idik hücrede rakam olarak 2'yi görecektik. dolayısı ile SATIR()-2 = 2-2 = 0, yine 6*(SATIR()-2) = 6*0 = 0, devamla 6*(SATIR()-2)+1 = 0 + 1 = 1 olacaktır. fonksiyonda A harfinin yanına formül ile gelecek rakamı 1 olarak belirlemiş olduk.

D3 hücresi için SATIR() fonksiyonu 3 değerini verecek A'nın yanın gelecek rakam ise 7 (3-2=1, 6*1=6 ve 6+1=7) olacaktır.

E'den I'ya kadar olan sütunlarda ise sırayla A sütununda bir alt satırdaki verilerin geleceğini bildiğimizden +1 yerine +2 veya +3 vb diyerek gidiyoruz.

saygılar.
 
Son düzenleme:
Katılım
25 Mart 2009
Mesajlar
62
Excel Vers. ve Dili
office 2000, visual basic
İYİYMİŞ :))

anladım.. çok saolun... süper bir ortam burası çok keyifli.. dolayısı ile benim e14 deki 0 değeri veren formülde

=14-2=12*6=72+1=73 verdiğinden dolayı a73 deki sıfır değerini alıyorum....

İyi çalışmalar
 
Üst