• DİKKAT

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

baz tabloda yer alan ürün girdilerini ,başka sayfada tek tek gösterebilme

Katılım
16 Kasım 2015
Mesajlar
18
Excel Vers. ve Dili
excel 365 türkçe
http://dosya.co/o9w2x1ni2xm1/örnek.xlsx.html
adresinde bulunan örnekte , ilk sayfanın içinde "baz tablo" adını verdiğim bir tablo bulunmakta. bu tabloda görüldüğü gibi "A" Sütununda yemek isimleri "B" sütununda yemeğin içinde bulunan malzemelerin isimleri var . " C" sütununda ise bu girdilerin gramaj miktarları bulunuyor. Benim sorunum
" istediğim tablo"olarak açmış olduğum sayfada örneğin "balık ızgara"yazınca hemen karşısına malzeme isimleri ve onların gramajlarının tek tek gelmesi. Bu konuda yardımcı olabilirseniz çok memnun olurum.
 
Merhaba.
İstediğiniz baz tablonuz gibi alt alta bir liste mi yoksa veriler yan yana sütunlaramı dağılacak acaba?
 
Merhaba.
İstediğiniz baz tablonuz gibi alt alta bir liste mi yoksa veriler yan yana sütunlaramı dağılacak acaba?
örn: " A" sütununa "balık ızgara" yazınca "B" sütununda alt alta balık ızgaranın içindeki malzemeleri "C" sütununda iste gramajları görmek istiyorum
 
Formül ile çözüm estirseniz aşağıdaki şekilde sonuç alabilirsiniz.
BAZ TABLO sayfası D3 hücresine;
Kod:
=EĞER(A3="";D2;A3)
BAZ TABLO sayfası E3 hücresine;
Kod:
=EĞERSAY($D$3:D3;D3)

Formülleri liste boyunca kopyalayın.
(bu iki sütun yardımcı sütun olarak kullanılıyor, formül uygulaması sonrasında gizlenebilir)

İSTEDİĞİM TABLO sayfası B2 hücresine uygulayın ve sağa bir sütun kopyaladıktan sonra B2:C2 hücrelerini seçip aşağı doğru yeterince satır kopyalayın.
Kod:
=EĞER(EHATALIYSA(KAÇINCI(SATIR()-1;DOLAYLI("'BAZ TABLO'!E"&KAÇINCI($A$2;'BAZ TABLO'!$D:$D;0)&":E"&KAÇINCI($A$2;'BAZ TABLO'!$D:$D;0)+EĞERSAY('BAZ TABLO'!$D:$D;$A$2)-1);0));"";İNDİS(DOLAYLI("'BAZ TABLO'!B"&KAÇINCI($A$2;'BAZ TABLO'!$D:$D;0)&":C"&KAÇINCI($A$2;'BAZ TABLO'!$D:$D;0)+EĞERSAY('BAZ TABLO'!$D:$D;$A$2)-1);KAÇINCI(SATIR()-1;DOLAYLI("'BAZ TABLO'!E"&KAÇINCI($A$2;'BAZ TABLO'!$D:$D;0)&":E"&KAÇINCI($A$2;'BAZ TABLO'!$D:$D;0)+EĞERSAY('BAZ TABLO'!$D:$D;$A$2)-1);0);SÜTUN()-1))
 
Formül ile çözüm estirseniz aşağıdaki şekilde sonuç alabilirsiniz.
BAZ TABLO sayfası D3 hücresine;
Kod:
=EĞER(A3="";D2;A3)
BAZ TABLO sayfası E3 hücresine;
Kod:
=EĞERSAY($D$3:D3;D3)

Formülleri liste boyunca kopyalayın.
(bu iki sütun yardımcı sütun olarak kullanılıyor, formül uygulaması sonrasında gizlenebilir)

İSTEDİĞİM TABLO sayfası B2 hücresine uygulayın ve sağa bir sütun kopyaladıktan sonra B2:C2 hücrelerini seçip aşağı doğru yeterince satır kopyalayın.
Kod:
=EĞER(EHATALIYSA(KAÇINCI(SATIR()-1;DOLAYLI("'BAZ TABLO'!E"&KAÇINCI($A$2;'BAZ TABLO'!$D:$D;0)&":E"&KAÇINCI($A$2;'BAZ TABLO'!$D:$D;0)+EĞERSAY('BAZ TABLO'!$D:$D;$A$2)-1);0));"";İNDİS(DOLAYLI("'BAZ TABLO'!B"&KAÇINCI($A$2;'BAZ TABLO'!$D:$D;0)&":C"&KAÇINCI($A$2;'BAZ TABLO'!$D:$D;0)+EĞERSAY('BAZ TABLO'!$D:$D;$A$2)-1);KAÇINCI(SATIR()-1;DOLAYLI("'BAZ TABLO'!E"&KAÇINCI($A$2;'BAZ TABLO'!$D:$D;0)&":E"&KAÇINCI($A$2;'BAZ TABLO'!$D:$D;0)+EĞERSAY('BAZ TABLO'!$D:$D;$A$2)-1);0);SÜTUN()-1))

Üstad eline koluna sağlık çok güzel bir çalışma yapmışsın, hakkını helal et.
 
Makro ile çözüm isterseniz, aşağıdaki şekilde işlem yapın.
Alt taraftan İSTEDİĞİM TABLO sayfa adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi
seçin ve açılan VBA ekranında sağ taraftaki boş alana aşağıdaki kod'u yapıştırın.
Sonra A2 hücresine bir yemek adı yazın.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2")) Is Nothing Then Exit Sub
Dim b As Worksheet: Set b = Sheets("BAZ TABLO")
Dim i As Worksheet: Set i = Sheets("İSTEDİĞİM TABLO")
    i.Range("B:C").ClearContents
    i.Cells(1, 2) = "Malzeme Adı": i.Cells(1, 3) = "Gramaj"
If WorksheetFunction.CountIf(b.Range("A:A"), Target) = 0 Then Exit Sub
    aranan = i.Cells(2, 1)
b.Columns("B:C").UnMerge
    ilk = WorksheetFunction.Match(aranan, b.Range("A:A"), 0)
If b.[B65536].End(3).Row = ilk Then
    son = ilk
        ElseIf b.Cells(ilk + 1, 1) <> "" And b.Cells(ilk, 1) <> b.Cells(ilk + 1, 1) Then
            son = ilk
                ElseIf b.Cells(ilk, 1).End(4).Row - 1 > b.[B65536].End(3).Row Then
            son = b.[B65536].End(3).Row
        Else
    son = b.Cells(ilk, 1).End(4).Row - 1
End If
For satır = ilk To son
    yaz = i.[B65536].End(3).Row + 1
        i.Cells(yaz, 2) = b.Cells(satır, 2)
        i.Cells(yaz, 3) = b.Cells(satır, 3)
        i.Cells(i.[F65536].End(3).Row + 1, 6) = b.Cells(satır, 2)
        i.Cells(i.[F65536].End(3).Row, 7) = b.Cells(satır, 3)
    ilk = ilk + 1
Next
End Sub
 
Son düzenleme:
Makro ile çözüm isterseniz, aşağıdaki şekilde işlem yapın.
Alt taraftan İSTEDİĞİM TABLO sayfa adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi
seçin ve açılan VBA ekranında sağ taraftaki boş alana aşağıdaki kod'u yapıştırın.
Sonra A2 hücresine bir yemek adı yazın.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2")) Is Nothing Then Exit Sub
Dim b As Worksheet: Set b = Sheets("BAZ TABLO")
Dim i As Worksheet: Set i = Sheets("İSTEDİĞİM TABLO")

i.Range("B2:C" & i.[C65536].End(3).Row) = ""
i.Cells(1, 2) = "Malzeme Adı": i.Cells(1, 3) = "Gramaj"
If WorksheetFunction.CountIf(b.Range("A:A"), Target) = 0 Then Exit Sub

aranan = i.Cells(2, 1)
bas = WorksheetFunction.Match(aranan, b.Range("A:A"), 0)
bit = b.Cells(bas, 1).End(4).Row - 1

For satır = bas To bit
    i.Cells(i.[B65536].End(3).Row + 1, 2) = b.Cells(bas, 2)
    i.Cells(i.[C65536].End(3).Row + 1, 3) = b.Cells(bas, 3)
    bas = bas + 1
Next
End Sub
üstad bişey daha sormak istiyorum. "istediğim tablo" sayfasındaki "a2" değerine bir sayı girdikten sonra "B" VE " C" SÜTUNUNDA ÇIKAN değerleri "F" ve "G" SÜTUNUNA Kaydedebilirmiyim? yani her bulduğum değer otomatik olarak "F" ve "G" 'de gözüksün ancak buradakiler silinmesin, alt alta uzasın.
böyle birşey mümkün müdür?
 
F1 ve G1 hücresine başlıkları yazdıktan sonra yukarıdaki kod blokunun
bas=bas+1 satırının hemen üstüne aşağıdaki iki satırı ekleyin.
Kod:
    i.Cells(i.[F65536].End(3).Row + 1, 6) = b.Cells(bas, 2)
    i.Cells(i.[G65536].End(3).Row + 1, 7) = b.Cells(bas, 3)
 
http://dosya.co/8g7urxlzlk5s/örnek_yeni.xlsx.html
kardeşim tekrar rahatsız ediyorum ama, bazı ürünlerde sorun yaşıyorum. örnekte gözüktüğü gibi normalde tek değer çıkması gereken girdilerde , "BAZ TABLO"'NUN İÇİNDEKİ diğer girdilerde gözüküyor.
"baz tablo"nun içindeki "E" Sütunu altında karşılığı arka arkaya "1" olan girdiler, " istediğim tablo" ya altında diğer " 1" yazan ürünlerle beraber geçiyor.
 
Baz tablonuzun ilk 2 satırının, İstediğim Tablo sayfasının da 1'inci satırının başlık satırı olduğu varsayılmıştır.
Buna göre kod'daki bir hatayı da düzelterek (son yemeğin yazılmasında ve 1 satırlık malzemesi olan yemekte sorun varmış)
kod'u yukarıdaki cevabımda düzeltme yaparak yeniledim, kod içeren ilk cevabıma tekrar bakınız.
 
Son düzenleme:
Baz tablonuzun ilk 2 satırının, İstediğim Tablo sayfasının da 1'inci satırının başlık satırı olduğu varsayılmıştır.
Buna göre kod'daki bir hatayı da düzelterek (son yemeğin yazılmasında ve 1 satırlık malzemesi olan yemekte sorun varmış)
kod'u yukarıdaki cevabımda düzeltme yaparak yeniledim, kod içeren ilk cevabıma tekrar bakınız.
şimdi baktım ancak şuandaki sorun her ürünü tek tek yazması , yani "BAZ TABLO"daki çoklu malzeme olan yemeklerde "istediğim tabloda" tek malzeme olarak gözüküyor. :S
 
Baz tablonuzun ilk 2 satırının, İstediğim Tablo sayfasının da 1'inci satırının başlık satırı olduğu varsayılmıştır.
Buna göre kod'daki bir hatayı da düzelterek (son yemeğin yazılmasında ve 1 satırlık malzemesi olan yemekte sorun varmış)
kod'u yukarıdaki cevabımda düzeltme yaparak yeniledim, kod içeren ilk cevabıma tekrar bakınız.
http://dosya.co/ju24facj9fi9/örnek_2.xlsx.html

bu linkten sorunu görebilirsin
 
Tekrar merhaba.
Gece geç vakit olunca dikkat azalması olmuş demekki.
6 numaralı cevaptaki KOD'u güncelledim,
belgenizdeki KOD'u yenisiyle değiştirip test ettikten sonra sonucu konu sayfasına yazarsınız.

NOT: Bu arada ALINTI yaparak cevap yazdığınızda; KOD / formül metinlerini gerekmedikçe silerek alıntı yapınız.
 
Son düzenleme:
Tekrar merhaba.
Gece geç vakit olunca dikkat azalması olmuş demekki.
6 numaralı cevaptaki KOD'u güncelledim,
belgenizdeki KOD'u yenisiyle değiştirip test ettikten sonra sonucu konu sayfasına yazarsınız.

NOT: Bu arada ALINTI yaparak cevap yazdığınızda; KOD / formül metinlerini gerekmedikçe silerek alıntı yapınız.
teşekkürler üstad,

valla ilk forum deneyimim o yüzden biraz yanlışlarım olabilir, zamanla aşarım bunları;)

Hayırlı günler
 
Geri
Üst