Matrisin İlk Sütunundaki Değerelere göre yeni matris oluşturma

Katılım
4 Ağustos 2006
Mesajlar
135
Excel Vers. ve Dili
2017 Eng
Altın Üyelik Bitiş Tarihi
28/04/2018
Merhaba arkadaşlar

[3,3] matrisi halinde verimiz olduğunu düşünelim. Matrisin 1. sütunundaki değerler baz alınarak yeni bir matris oluşturacağım. Şöyleki ;

Matrisin (1,1) elamanının sağında yer alan değerlere yani (1,2) ve (1,3) değerleri bir yere yazacağım.Eğer bu değer veya değerler matrisin ilk sütununda da yer alıyorsa, yer alan hücreyi bulup yine sağındaki değerlere bakıp az önce yazırdğım değerlerin yanına yazdıracağım..Bu işlemleri matrisin ilk sütunundaki değerler bitinceye kadar yapacağım...

Karmaşık gelebilir. Yazımla anlatımı zor..Çok basit şekilli anlatım ektedir. Yardımlarınıza ihtiyacım var arkadaşlar..
Şimdiden çok teşekkürler
 
Son düzenleme:
Katılım
15 Mart 2005
Mesajlar
380
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

Kod:
Sub matris_coz()
sutun = 5:   satir = 1
For i = 1 To 3
Cells(satir, sutun) = Cells(i, 1)
ysat = i
GoSub yaz
    
    For z = i + 1 To 3
        For j = 6 To Cells(satir, 5).End(xlToRight).Column
            If Cells(z, 1) = Cells(satir, j) Then
                ysat = z
                GoSub yaz
                Exit For
            End If
        Next j
    Next z

satir = satir + 2:   sutun = 5
Next i

Exit Sub
yaz:
For y = 2 To 3
    If Cells(ysat, y) <> "" Then sutun = sutun + 1:  Cells(satir, sutun) = Cells(ysat, y)
Next y
Return

End Sub
 
Katılım
4 Ağustos 2006
Mesajlar
135
Excel Vers. ve Dili
2017 Eng
Altın Üyelik Bitiş Tarihi
28/04/2018
&#199;ok &#231;ok te&#351;ekk&#252;r ediyorum. Eme&#287;inize ellerinize sa&#287;l&#305;k say&#305;n dost..
Matrisin boyutu de&#287;i&#351;ti&#287;inde ya da yeri de&#287;i&#351;ti&#287;inde kod &#252;zerinde hangi ibareleri de&#287;i&#351;tirmeliyim? Kurcalayarak ve mant&#305;k kullanrak bulmaya &#231;al&#305;&#351;aca&#287;&#305;m ama buna da cevap verebilirseniz &#231;ok sevinirim..tekrardan &#231;ok saolunuz
 
Katılım
4 Ağustos 2006
Mesajlar
135
Excel Vers. ve Dili
2017 Eng
Altın Üyelik Bitiş Tarihi
28/04/2018
Merhaba
Aynı matriste birinci satır ile ikinci satırın yerini değiştirdim. Aynı sonuç vermesi gerekirken farklı bir sonuç verdi.

Ayrıntılı bir şekilde açıklama ektedir. İnceler misiniz lütfen?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
1 ve 2.sayfadaki nasıl aynı sonucu verecek anlayamadım. Sizin açıklamalarınıza göre verilen kod doğru çalışıyor.
 
Katılım
4 Ağustos 2006
Mesajlar
135
Excel Vers. ve Dili
2017 Eng
Altın Üyelik Bitiş Tarihi
28/04/2018
aynı sonucu vermesi gerekir.
2. sayfada durum şöyle;
Birinci sütunda yer alan 2 için sonuç doğru : 2, 3, 5 , 6
Birinci sütunda yer alan 1 için sonuç şöyle olmalı. 1 in sağında 2 var. Şimdi birinci sütundaki 2 değerini arayacak ve bulacak (2 değeri ilk satırda var). Bu 2 değerininin yanındaki sayıları yazacak. 3 ve 5. Şİmdi 3 ve 5 için tekrar birinci sütuna bakacak. birinci sütundaki 3 ün yanında 6 var. O halde sonuç 1, 2, 3, 5, 6 olmalı.

Birinci sayfa ile ikinci sayfada yer alan soru aynı soru. Sadece 1. satır ile 2. satır yer değiştirmiş. Aynı sonucu vermelidir..
 
Katılım
16 Eylül 2005
Mesajlar
179
Excel Vers. ve Dili
Excel 2007 12.0
sayfaya bir &#231;ekbaks :) koyun, kep&#351;&#305;n&#305;n&#305; da "2. il 3. yer de&#287;i&#351;ti yap&#305;n.
&#351;imdi dost beyin verdi&#287;i kodlar&#305; 2 ile 3 &#252;n yer de&#287;i&#351;tirdi&#287;i zaman olmas&#305; gereken halini yaz&#305;n. bir if d&#246;ng&#252;s&#252;yle &#231;ekbaks&#305;n 2 haline ayr&#305; ayr&#305; bu haz&#305;rlad&#305;&#287;&#305;n&#305;z 2 ayr&#305; &#231;al&#305;&#351;may&#305; (dost beyin haz&#305;rlad&#305;&#287;&#305; ve sizin de&#287;i&#351;tirdi&#287;iniz) y&#246;nledirin.
2 ile 3 &#252; yerde&#287;i&#351;tirip &#231;ekbaks&#305; i&#351;aretleyin. b&#246;yle yaparsan&#305;z &#231;al&#305;&#351;&#305;r.
ingilizce ile aram pek iyi de&#287;il
ayemsori
 
Katılım
15 Mart 2005
Mesajlar
380
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

İlk sorunuzda bu şekilde anlaşılmıyordu.
İstediğiniz şekilde düzelttim. Ayrıca, matrisin boyu istediğiniz ölçüde olabilir, kodları ona göre düzelttim.

Kod:
Sub matris_coz()
tmpsutun = Range("A1").CurrentRegion.Columns.Count + 2
sutun = tmpsutun
satir = 1
sonsat = Range("A1").End(xlDown).Row
For i = 1 To sonsat
Cells(satir, sutun) = Cells(i, 1)
ysat = i
GoSub yaz
    
    For z = 1 To sonsat
        If z <> i Then
            For j = tmpsutun + 1 To Cells(satir, tmpsutun).End(xlToRight).Column
                If Cells(z, 1) = Cells(satir, j) Then
                    ysat = z
                    GoSub yaz
                    Exit For
                End If
            Next j
        End If
    Next z

satir = satir + 2:   sutun = tmpsutun
Next i

Exit Sub
yaz:
For y = 2 To (tmpsutun - 2)
    If Cells(ysat, y) <> "" Then sutun = sutun + 1:  Cells(satir, sutun) = Cells(ysat, y)
Next y
Return

End Sub
 
Katılım
4 Nisan 2006
Mesajlar
999
Excel Vers. ve Dili
OFFICE 2021 Türkçe
Say&#305;n dost say&#305;n moderat&#246;r arkada&#351;lar &#246;ncelikle te&#351;ekk&#252;r ederim
bu sorunu form&#252;llerle yapabilirmiyiz
 
Katılım
4 Ağustos 2006
Mesajlar
135
Excel Vers. ve Dili
2017 Eng
Altın Üyelik Bitiş Tarihi
28/04/2018
Sayın dost harikasınız. Çok teşekkür ederim..
Son bişey daha rica edebilir miyim affınıza sığınarak.. Sonuçlar doğru. Ancak şöyle bi şeyi yaptırabilir miyiz? tüm cevap alanı için, aynı satırda aynı değerden yalnızca bir tane olsun.. Şöyle bir sonuç çıktı mesela 1 değeri için ;

1 , 2 , 3 , 5 , 4 , 8 , 6 , 7 , 8 , 9 , 9 , 10

8 ve 9 değerlerinden birden fazla var.

o halde çözüm şu şekilde olsun : 1, 2 , 3 , 5, 4, 8 , 6 , 7 , 9 , 10

Nasıl teşekkür edeceğimi bilemiyorum arkadaşlar. Allah razı olsun. Ellerinize emeklerinize sağlık..
 
Son düzenleme:
Üst