2 farklı tablodaki veriyi denklem sistemine dönüştürme

Katılım
21 Ocak 2022
Mesajlar
1
Excel Vers. ve Dili
2016
Merhabalar... Birden fazla tablodan oluşan değerleri tek tabloda aşağıdaki formata dönüştürmek istiyorum.

Tablo-1

25 45 66 77
43 46 76 71
49 32 47 53
11 52 78 99

Tablo-2


X Y Z T
K L M N
P R S U
A B C D

DÖNÜŞTÜRÜLECEK FORMAT
25 X + 45 Y + 66 Z + 77 T
43 K + 46 L + 76 M + 71 N
49 P + 32 R + 47 S + 53 U
11 A + 52 B + 78 C +99 D

Basit tabloları her sütün için manuel bir tane yapınca yapıyorum ancak elimde 1000x1000 ve daha büyük veriler var.
Özetle ilk sütuna ilk tablonun 1.1 değerini
ikinci sütuna ikinci tablonun 1.1 değerini
üçüncü sütuna +
4. sütuna ilk tablonun 1.2 değerini
5. sütuna ikinci tablonun 1.2 değerini aktaracak şekilde bir formül arıyorum.

ilginize şimdiden teşekkürler....
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,655
Excel Vers. ve Dili
Microsoft 365 Tr-64
Size bir örnek hazırladım. Ama VBA ile.
Tablolarınız 1000x1000 olduğunu söylediğiniz için formüllerle dosyanız kasmasın diye.

1.tablonuz Tbl1 isimli sayfada A1 hücresinden itibaren yerleşmiş
2.tablonuz Tbl2 isimli sayfada A1 hücresinden itibaren yerleşmiş

Olduğu kabulüyle
Sonuç isimli bir diğer sayfada A1 hücresinden itibareb sonuç tablonuzu görebilirsiniz.

Sonuç sayfanızın Kod penceresine aşağıdaki kodu aynen yapıştırın.
Sayfaya her girişinizde birleşmiş tablonuz yeniden oluşacaktır.

Tek kısıt, Tablo1 ve Tablo2 nizin satır sayıları birbirinin aynısı, sütun sayıları birbirinin aynısı olmak zorundadır. Siz de zaten soruda bunu istemişsiniz.

C++:
Private Sub Worksheet_Activate()
    Cells.Clear
    Veri1 = Worksheets("Tbl1").Range("A1").CurrentRegion.Value
    Veri2 = Worksheets("Tbl2").Range("A1").CurrentRegion.Value
    If UBound(Veri1, 1) <> UBound(Veri2, 1) Or UBound(Veri1, 2) <> UBound(Veri2, 2) Then
        MsgBox "Tablolar aynı satır - sütun sayısına sahip değiller."
        Exit Sub
    End If
    ReDim Liste(1 To UBound(Veri1, 1), 1 To 2 * UBound(Veri2, 2) - 1)
    For i = 1 To UBound(Liste, 1)
        Say1 = 0: Say2 = 0
        For k = 1 To UBound(Liste, 2)
            Select Case k Mod 3
                Case 0
                Liste(i, k) = "+"
                Case 1
                Say1 = Say1 + 1
                Liste(i, k) = Veri1(i, Say1)
                Case 2
                Say2 = Say2 + 1
                Liste(i, k) = Veri2(i, Say2)
            End Select
        Next k
    Next i
    Worksheets("Sonuç").Range("A1").Resize(UBound(Liste, 1), UBound(Liste, 2)) = Liste
    Worksheets("Sonuç").Range("A1").Resize(UBound(Liste, 1), UBound(Liste, 2)).Columns.AutoFit
    Worksheets("Sonuç").Range("A1").Resize(UBound(Liste, 1), UBound(Liste, 2)).Rows.AutoFit
End Sub
233585 233586 233588
 
Üst