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.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.
İstediğiniz baz tablonuz gibi alt alta bir liste mi yoksa veriler yan yana sütunlaramı dağılacak acaba?
 
Katılım
16 Kasım 2015
Mesajlar
18
Excel Vers. ve Dili
excel 365 türkçe
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
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
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))
 
Katılım
16 Kasım 2015
Mesajlar
18
Excel Vers. ve Dili
excel 365 türkçe
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.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
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:
Katılım
16 Kasım 2015
Mesajlar
18
Excel Vers. ve Dili
excel 365 türkçe
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?
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
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)
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Estağfurullah, iyi günler dilerim.
 
Katılım
16 Kasım 2015
Mesajlar
18
Excel Vers. ve Dili
excel 365 türkçe
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.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
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:
Katılım
16 Kasım 2015
Mesajlar
18
Excel Vers. ve Dili
excel 365 türkçe
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
 
Katılım
16 Kasım 2015
Mesajlar
18
Excel Vers. ve Dili
excel 365 türkçe
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
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
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:
Katılım
16 Kasım 2015
Mesajlar
18
Excel Vers. ve Dili
excel 365 türkçe
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
 
Üst