• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Koşula bağlı veri çekmek ve farklı hücrelere koşula göre veri yazmak

  • Konbuyu başlatan Konbuyu başlatan ygtse
  • Başlangıç tarihi Başlangıç tarihi
Katılım
17 Eylül 2017
Mesajlar
5
Excel Vers. ve Dili
2013Tr
Merhaba bir sorunum ve sorum var, uzun zaman araştırıp belirli parçalarını çözdüm ama hepsini bir arada halletmede büyük sorun yaşıyorum. Umarım yardımcı olabilecek biri çıkar.

Örnek dosyaya bakarak daha rahat anlaşılır ama ben önce bir anlatayım. Resimden veya eklediğim dosyadan takip edebilirsiniz.

Elimde otomatik olarak oluşturulmuş 2 sayfa var. "Bakiyeler" sayfasında müşteri isimleri ve son bakiyeleri var. "Faturalar" sayfasında ise müşteri isimleri, fatura tarihi, fatura no ve fatura tutarı sütunları var.

Tahsilat sorumlusunun işini kolaylaştırmak için bu iki sayfayı Bakiyeler sayfasında birleştirmek istiyorum. Sarı olarak gösterdiğim alanların Faturalar sayfasından otomatik çekilmesini istiyorum.
Bakiyeler.png

Faturalar.png


Yani Bakiyeler sayfasında A2'den başlayarak aşağıya gidecek ve şunu yapacak:
  1. Hücre içeriğini Faturalar sayfasında A3'ten A20'ye sırayla arayacak
  2. Eşleşme durumunda, bir sağ hücredeki tarihi alıp Bakiyeler sayfasında C2 hücresine yazacak
  3. Sonra 3 sağındaki(yani Faturalar D3) fatura tutarını alıp Bakiyelerde C2'nin bir sağına geçip D2'ye yazacak.
  4. Aranan müşterinin faturaları bitene kadar Bakiyeler sayfasındaki müşteri isimlerini Faturalar sayfasında aramaya ve Bakiyeler sayfasındaki satırda bir sağa geçe geçe veri çekmeye devam edecek.

Örnek dosya ve resimde Müşteri 1, Faturalar sayfasında aranır ve bulunan faturalar C2 hücresinden başlayarak sağa doğru işlenir(Örnekte Müşteri 1'in 3 faturası var. Aranan müşteriye kesilen hiç fatura yoksa alt satıra geçer). Sonra alt satıra geçer ve Müşteri 2'ye ait faturaları bulup Bakiyelerdeki satırına işler.

Umarım anlatabilmişimdir. Yukarıda istediklerimi tek tek yapabilmeyi buldum ama dikey aratıp yatay yazdırmam bol veli, veyalı, düşeyaralı, eğerli olacak gibi duruyor. Bir de yazılacak hücreyi sağa doğru ilerletmek istediğimden acaba hiç anlamadığım makro(:oops:) muhabbeti mi gerekecek diye korkuyorum.

Yardımı dokunacaklara şimdiden teşekkür ederim.
 

Ekli dosyalar

Sayın ygtse Foruma hoş geldiniz.Dosyanızı altın üyeliğim olmadığı için göremiyorum. Eklediğiniz resimlere bakarak oluşturduğum formülle çözümlenmiş dosyanız.Çözüme yardımcı olması dileğiyle.Dosya ekte
http://s5.dosya.tc/server5/fnx35e/fatura.rar.html

Hoşbulduk çok sağol. Dosyayı göremeyeceğini bilmiyordum kusuruma bakma. Şu an yolda olduğumdan telefondan bakabildim her şey yolundaymış gibi görünüyor. Bilgisayar başına geçtiğimde bakıp formülü okumaya çalışacağım. Çok teşekkür ederim tekrardan.
 
Örnek dosyayı herkes görebilsin diye buraya tekrar yükledim(Sağ tıklayıp farklı kaydetmeniz gerekiyor sanırım).

Gönderdiğiniz dosyadaki kodları kendi dosyama uygulayamadım. Formül çubuğuna baktığımda yazdığınız formülün "{" ve "}" işaretleri arasında olduğunu gördüm fakat ben öyle kopyalayamıyorum.

Asıl uygulamak istediğim dosyada bakiyeler sayfası 300 satır ve faturalar sayfası 7000 satır. Hücre yerleri aynı. Şirket bilgileri içerdiğinden yukarıdaki örnek dosyayı hazırlamıştım.
Sizin yolladığınız dosyanın içine kendi verilerimi gireyim dedim ama sanırım formülü okuyamadığım için öyle de başaramadım. Bir de Bakiyeler sayfasındaki "Son Bakiye(Sabit):" sütununa dokunmayacağız. Orası olduğu gibi kalacak.

Kod:
=EĞERHATA(İNDİS(Faturalar!$A$1:$D$30;KÜÇÜK(EĞER(Faturalar!$A$3:$A$30=$A2;SATIR($A$3:$A$30));TAMSAYI(SÜTUN(A1)/2,1)+1);C$1);"")

Bu kodu kendi dosyamda bakiyeler sayfasında C2'ye girip hem aşağı hem de sağa doğru çekip kopyalamalı mıyım? Bir müşterinin yüzlerce faturası varsa o müşterinin satırında sağa doğru yüzlerce hücre gitmesini nasıl sağlayacağım?

Asıl uygulamak istediğim dosyada bakiyeler sayfası 300 satırsa ve faturalar 7000 satırsa uygulamam gereken formül aşağıdaki gibi midir?

Kod:
=EĞERHATA(İNDİS(Faturalar!$A$1:$D$7000;KÜÇÜK(EĞER(Faturalar!$A$3:$A$7000=$A2;SATIR($A$3:$A$300));TAMSAYI(SÜTUN(A1)/2,1)+1);C$1);"")

Hesaplanmasını istemediğim bakiye toplamı yukarıdaki formülde işlenmekte midir? Çünkü öyleyse onu çıkarmak istiyorum. Ben sadece müşteri ismi ve toplam bakiyesini bildiğim sayfada müşterilerin satırlarında sağa doğru ilerleyerek faturalar sayfasındaki verileri çekmek istiyorum.
 
Son düzenleme:
Sayın ygtse başara bildiğim kadar sorularınızı cevaplamaya çalışayım.
Formülü Bakiyeler sayfası C2 hücresine kopyalayınız. Dizi formülü.Kopyaladıktan sonra C2 hücresinde formül çubuğuna tıklayınız.ctrl ve shift tuşuna basılı iken enter tuşlayınız.Formülün başında { işareti sonunda } işareti oluşmalıdır.Bundan sonra sağa ve aşağı çekerek çoğaltınız. Bakiyeler sayfasında yazılı olan müşterilerin fatura tarihlerini ve fatura tutarını fatura sayfasından çeker.7000 satıra kadar fakat belki kasa bilir.Bakiye toplamıyla formülün ilgisi yoktur.Formülün doğru çalışması için başındaki ve sonundaki işaretler mutlaka belirttiğim yöntemle oluşmalıdır.Örnek dosya ektedir.Uygun Hücre biçimlemesi yapınız.Son formül aşağıda kolay gelsin.
Kod:
=EĞERHATA(EĞER($A2="";"";İNDİS(Faturalar!$A$1:$D$7000;KÜÇÜK(EĞER(Faturalar!$A$3:$A$7000=$A2;SATIR($A$3:$A$7000));TAMSAYI(SÜTUN(A1)/2,1)+1);(MOD(SÜTUN(B1);2)+1)*2));"")
http://s5.dosya.tc/server5/iskg8k/fatura1.rar.html
 
Son düzenleme:
Örnek dosya bulunamadı diyor. Bir daha yollayabilir misiniz?

Sayın ygtse başara bildiğim kadar sorularınızı cevaplamaya çalışayım.
Formülü Bakiyeler sayfası C2 hücresine kopyalayınız. Dizi formülü.Kopyaladıktan sonra C2 hücresinde formül çubuğuna tıklayınız.ctrl ve shift tuşuna basılı iken enter tuşlayınız.Formülün başında { işareti sonunda } işareti oluşmalıdır.Bundan sonra sağa ve aşağı çekerek çoğaltınız. Bakiyeler sayfasında yazılı olan müşterilerin fatura tarihlerini ve fatura tutarını fatura sayfasından çeker.7000 satıra kadar fakat belki kasa bilir.Bakiye toplamıyla formülün ilgisi yoktur.Formülün doğru çalışması için başındaki ve sonundaki işaretler mutlaka belirttiğim yöntemle oluşmalıdır.Örnek dosya ektedir.Uygun Hücre biçimlemesi yapınız.Son formül aşağıda kolay gelsin.
Kod:
=EĞERHATA(EĞER($A2="";"";İNDİS(Faturalar!$A$1:$D$7000;KÜÇÜK(EĞER(Faturalar!$A$3:$A$7000=$A2;SATIR($A$3:$A$7000));TAMSAYI(SÜTUN(A1)/2,1)+1);(MOD(SÜTUN(B1);2)+1)*2));"")

http://s8.dosya.tc/server5/fmfy9q/Ornek2.rar.html
 
ctrl+shift yaptım çözüldü bu arada çok teşekkür ederim. İlk örnek dosyada en üst satıra sırasıyla 2 ve 4 yazıp aşağıdaki formülde o 2 ve 4'ü kullanmıştınız örnek dosyayı o yüzden rica ettim.
{ ve } işaretleri olması formülü nasıl etkiliyor?
 
Son düzenleme:
ctrl+shift yaptım çözüldü bu arada çok teşekkür ederim. İlk örnek dosyada en üst satıra sırasıyla 2 ve 4 yazıp aşağıdaki formülde o 2 ve 4'ü kullanmıştınız örnek dosyayı o yüzden rica ettim.
Rica ederim.Dosyayı tekrar yükledim(5nolu mesajda).2 ve 4 sondaki modla başlayan ifade ile sağladım yazmaya ihtiyaç kalmadı.kolay gelsin.
http://www.excelgurusu.com/dizi-array-formulleri/
 
Son düzenleme:
Geri
Üst