Bugün biraz farklı bir uygulama yapmak istiyorum. Liste halinde verilmiş bir veriyi tam tersi sütun veya satır olacak şekilde yeniden oluşturmak veya listenin son elemanı başa gelecek şekilde ters çevirmeyi formüller ile nasıl yaparız? Excel’in özel yapıştır ters-yüz yap işlevini kullanabiliriz ancak ben burada bu yöntemi kullanmayacağım. Dedim ya farklı bir uygulama olacak bu yüzden ben SATIR, SÜTUN ve KAYDIR formülleri ile yatay listeyi dikey, dikey listeyi yatay hale getirme için kullanabileceğiniz bir kaç yöntem göstereceğim. Daha önce KAYDIR formülünü bu yazımda anlatmış idim. SATIR ve SÜTUN formülleri ise oldukça basit burada hızlıca değinelim. Bu formüller girilen hücre adresinin hangi satır veya sütunda olduğunu rakam olarak bulmaya yarayan formüllerdir. Yazılımları aynı:
=SATIR([başvuru])
=SÜTUN([başvuru])
Başvuru değeri isteğe bağlıdır, girilmez ise formülün yer aldığı hücrenin adresi alınır. İngilizce Excel için ROW ve COLUMN Şimdi isterseniz bu formülü kullanarak nasıl listelerle oynayabiliriz ona bir bakalım.
Dikey Yatay Dönüşümü
Yapmak istediğim şey dikey bir liste halinde verilmiş değerleri yatay hale getirmek. Bunun için öncelikle yatay listenin başlayacağı bir hücre alıyorum, bu hücrenin adresi benim için önemli. Çünkü bu işlemde KAYDIR formülünü kullanacağım ve ilk ismin bulunduğu hücre olan B4 hücresinden itibaren ne kadar aşağıya kayacağımı bulmak için içinde bulunduğum hücre ile yatay listenin başladığı bu ilk hücrenin sütunları arasındaki farklı kullanacağım.
Aşağıdaki resimde ne yapmak istediğimi gösterdim.

Şimdi formülü G7 hücresine yazmaya başlayalım, önce sütunlar arası farkı bulalım:
=SÜTUN(G$7)-SÜTUN($G$7)
Alternatif olarak:
=SÜTUNSAY($G$7:$G7)
Dikkat ederseniz bu formülün ilk SATIR kısmında kullandığım adresin sütun kısmı sabit değil ama ikinci SATIR formülünde bu kısım kilitli.Bunun amacı formülü yana doğru kaydırdığımda G sütunu sırası ile H, I, J… şeklinde değişmesi ve her zaman ilk sütun ile olan farkı bulmak istemem. Şimdi bu formülü KAYDIR formülüne yerleştirelim:
=KAYDIR($B$4;SÜTUN(G$7)-SÜTUN($G$7);0;1;1)
Bu formülü yana doğru kaydırarak çoğalttığımızda dikey listemiz yatay hale gelecektir. Burada bir sorun formülü listedeki satır sayısından fazla sütuna yayarsanız formül 0 sonucunu döndürür. Bunun gözükmesini istemiyorsanız bir eğer formülü ile bunu engellemeniz mümkün.
Aşağıdaki videoda formülün nasıl yazıldığını ve çalışmasını gösterdim.

Yatay Dikey Dönüşümü
Bir önceki adımda yaptığımız işlemi bu sefer satırlar için yapacağız. Aşağıdaki resimde bununla ilgili görseli bulabilirsiniz.

Burada da yapmak istediğim şey listeyi aktarmak istediğim dikey aralıkta yer alan ilk hücrenin satır değerini bulmak, bu değerin içinde bulunduğum hücrenin satır değeri ile farkını almak ve en sonunda elde ettiğim değeri KAYDIR formülün satır kısmında kullanmak.
İlk adım olan satırlar arasındaki farkı bulmak için kullanacağım formülü yazayım:
=SATIR($N3)-SATIR($N$3)
Alternatif olarak:
=SATIRSAY($N$3:$N3)
Burada da gördüğünüz gibi satır değeri formülün yer aldığı hücreden alınacak ve sonrasında aralıktaki ilk hücrenin satır değerinden çıkarılacak. Sonrasında da bu formülü KAYDIR formülünde kullanalım:
=KAYDIR($C$3;0;SATIR($N3)-SATIR($N$3);1;1)
Bu formülü aşağıya doğru uzattığınızda listeyi yataydan dikeye doğru döndürmüş olursunuz. Bir önceki formülde olduğu gibi var olandan fazla sayıda sütuna formülü yayarsanız 0 değeri geri döndürülür.
Aşağıdaki videoda formülün yazılışı ve çalışmasını gösterdim.

Listeyi Tersine Çevirme
Bir listeyi tersine çevirmek için yine KAYDIR formülünü kullanacağız. Aşağıdaki resimde ne yapmak istediğimi anlatmaya çalıştım.

Kaydırma miktarını bulmak için de ilk önce listede yer alan toplam satır sayısını bulmamız gerek. Sonrasında ise ilk uygulamada olduğu gibi aktarımı yapacağımız aralığın ilk hücresinin satır değeri ile içinde bulunduğumuz hücrenin farkını alarak toplam satır sayısından çıkaracağız. Hemen bu işlem için kullanacağımız ilk formülü olan BAĞ_DEĞ_DOLU_SAY formülünü yazalım. Ben burada listenin B sütununda yer aldığını varsayıyorum.
=BAĞ_DEĞ_DOLU_SAY($B:$B)-1
Ben burada bir tane başlık satırı kullandığım için değeri bir eksiltiyorum. Sonrasında ise listeyi aktarmak istediğim aralığın ilk hücresinin satırı ile etkin hücrenin satırı arasındaki farkı bulacağım:
=SATIR()-SATIR($J$3)
Burada ilk satır formülünde diğer uygulamalardan farklı olarak herhangi bir adres girmedim çünkü adres girilmez ise etkin hücrenin adresi alınır.
Şimdi KAYDIR formülümüzü yazalım:
=KAYDIR($B$2;BAĞ_DEĞ_DOLU_SAY($B:$B)-(SATIR()-SATIR($J$3))-1;0;1;1)
Formülü aşağıya doğru çektiğimizde tüm liste tersine çevrilmiş olur. Aşağıdaki videoda formülün çalışmasını gösterdim.

Sayın Erol bey,
Makalenizdeki =SATIR(G$7)-SATIR($G$7) ve =KAYDIR($B$4;SATIR(G$7)-SATIR($G$7);0;1;1) formüllerdeki SATIR ifadelerini SÜTUN olarak değiştirmelisiniz.
Makaleniz ile formül ifadeleri birbirleri ile çelişmektedir.
Saygılarımla,
Uyarınız için teşekkürler. En kısa sürede güncelleyeceğim.
Saygılarımla,