Joining two tables

Guinaba

Board Regular
Joined
Sep 19, 2018
Messages
217
Office Version
  1. 2016
Platform
  1. Windows
Hi experts,

Need some help, I have two tables: List1 and List2:

List1
BrandItem IDItem DescItem Size
Star33333blablablasmall
Planet44557blablablamedium
Moon78786blablablalarge


List2
Metrics
AA
AB

I have to loop through both tables adding the Metrics col from (List2) into each row of List1 creating a third table (List3)

List3
BrandItem IDItem DescItem SizeMetrics
Start33333blablablasmallAA
Start33333blablablasmallAB
Planet44557blablablamediumAA
Planet44557blablablamediumAB
Moon78786blablablalargeAA
Moon78786blablablalargeAB


I've started the following VBA code but couldn't finished off.

VBA Code:
Sub PopulateMetrics()

   Dim List1 As ListObject
   Dim List2 As ListObject
   Dim oRow As ListRow
   Dim ws1 As Worksheet
   Set ws1 = ThisWorkbook.Worksheets("WW_Portfolio")
   Dim ws2 As Worksheet
   Set ws2 = ThisWorkbook.Worksheets("WOW Metrics")
   Dim ws3 As Worksheet
   Set ws3 = ThisWorkbook.Worksheets("Template")
   Dim i As Long
   

   
   Set List1 = ws1.ListObjects("tPortfolio")
   Set List2 = ws2.ListObjects("tMetricsALL")

   For Each oRow In List1.ListRows
      ws3.Range("A" & oRow) = oRow.Range(1)
      
   Next oRow

End Sub
 

Excel Facts

Links? Where??
If Excel says you have links but you can't find them, go to Formulas, Name Manager. Look for old links to dead workbooks & delete.
use
Power Query:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    Metrics = Table.AddColumn(Source, "Metrics", each {"AA","AB"}),
    Expand = Table.ExpandListColumn(Metrics, "Metrics")
in
    Expand
BrandItem IDItem DescItem SizeBrandItem IDItem DescItem SizeMetrics
Star33333blablablasmallStar33333blablablasmallAA
Planet44557blablablamediumStar33333blablablasmallAB
Moon78786blablablalargePlanet44557blablablamediumAA
Planet44557blablablamediumAB
Moon78786blablablalargeAA
Moon78786blablablalargeAB
 
Upvote 0
or with single query and two tables
Power Query:
let
    Tbl2 = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    Metrics = Table.AddColumn(Source, "Metrics", each Tbl2),
    Expand = Table.ExpandTableColumn(Metrics, "Metrics", {"Metrics"}, {"Metrics"})
in
    Expand
BrandItem IDItem DescItem SizeBrandItem IDItem DescItem SizeMetrics
Star33333blablablasmallStar33333blablablasmallAA
Planet44557blablablamediumStar33333blablablasmallAB
Moon78786blablablalargePlanet44557blablablamediumAA
Planet44557blablablamediumAB
MetricsMoon78786blablablalargeAA
AAMoon78786blablablalargeAB
AB
 
Last edited:
Upvote 0
Greetings
An Option
Unique.xlsm
ABCDEFGHIJ
1BrandItem IDItem DescItem SizeBrandItem IDItem DescItem SizeMetrics
2Star33333blablablasmallStar33333blablablasmallAA
3Planet44557blablablamediumStar33333blablablasmallAB
4Moon78786blablablalargePlanet44557blablablamediumAA
5Planet44557blablablamediumAB
6MetricsMoon78786blablablalargeAA
7AAMoon78786blablablalargeAB
8AB
Sheet3
Cell Formulas
RangeFormula
F2:I7F2=INDEX(A$2:A$4,AGGREGATE(15,6,(ROW(A$2:A$4)-ROW(A$2)+1),CEILING(ROWS(F$2:F2)/2,1)))
J2:J7J2=INDEX(A$7:A$8,AGGREGATE(15,6,(ROW(A$7:A$8)-ROW(A$7)+1),MOD(ROWS(J$2:J2)+1,2)+1))
 
Upvote 0
Hi can you complete the Highlighted with Red Color

Cell Formulas
RangeFormula
F1:J1F1=IFERROR(MID($B3:$B7,FIND("|",SUBSTITUTE("/"&$B3:$B7&"/","/","|",CEILING((COLUMN()-COLUMN($F1)+1)/2,1))),FIND("/",$B3:$B7&"/",FIND("|",SUBSTITUTE("/"&$B3:$B7&"/","/","|",CEILING((COLUMN()-COLUMN($F1)+1)/2,1))))-FIND("|",SUBSTITUTE("/"&$B3:$B7&"/","/","|",CEILING((COLUMN()-COLUMN($F1)+1)/2,1)))),"")
E2:E15E2=IFERROR(INDEX(Sheet1!$A$2:$A$34,AGGREGATE(15,6,MATCH(Sheet1!$A$2:$A$34,Sheet1!$A$2:$A$34,0)/(MATCH(Sheet1!$A$2:$A$34,Sheet1!$A$2:$A$34,0)=(ROW(Sheet1!$A$2:$A$34)-ROW(Sheet1!$A$2)+1)),ROWS($A$2:A2))),"")
F2:S2F2=IF(COUNTIF(B3:B15,"<>?*"),IF(MOD(COLUMN(F$2)-COLUMN($F$2)+1,2)=0," # ","")&CHAR(CEILING((COLUMN(F$2)-COLUMN($F$2)+1)/2,1)+64),"")
F3:F15,R3:R15,P3:P15,N3:N15,L3:L15,J3:J15,H3:H15F3=IFERROR(SUMPRODUCT(--($A$3:$A$34=$E3),--ISNUMBER(FIND(F$2,$B$3:$B$34)),$C$3:$C$34/(LEN($B$3:$B$34)-LEN(SUBSTITUTE($B$3:$B$34,"/",""))+1)),"")
G3:G15,S3:S15,Q3:Q15,O3:O15,M3:M15,K3:K15,I3:I15G3=IFERROR(COUNTIFS($A$3:$A$34,$E3,$B$3:$B$34,"*"&F$2&"*"),"")
Press CTRL+SHIFT+ENTER to enter array formulas.
 
Upvote 0
Hi
what About Below Your Feedback is highly appreciated (y) ?
Note: Please for the Second Table header Press CTRL+SHIFT+ENTER to enter array formulas. First Line
VBA Code:
=TRIM(IF(AND(E2<>"",MOD(COLUMN(F$2)-COLUMN($F$2)+1,2)=0)," # ","")&IFERROR(MID(TEXTJOIN("/",,FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN("/",TRUE,SUBSTITUTE($B$3:$B$34,"/","/")),"/","</s><s>")&"</s></t>","//s[not(preceding::*=.)]")),FIND("|",SUBSTITUTE( "/"&TEXTJOIN("/",,FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN("/",TRUE,SUBSTITUTE($B$3:$B$34,"/","/")),"/","</s><s>")&"</s></t>","//s[not(preceding::*=.)]"))& "/", "/","|",CEILING((COLUMN()-COLUMN($F2)+1)/2,1))),FIND( "/",TEXTJOIN("/",,FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN("/",TRUE,SUBSTITUTE($B$3:$B$34,"/","/")),"/","</s><s>")&"</s></t>","//s[not(preceding::*=.)]"))& "/",FIND("|",SUBSTITUTE( "/"&TEXTJOIN("/",,FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN("/",TRUE,SUBSTITUTE($B$3:$B$34,"/","/")),"/","</s><s>")&"</s></t>","//s[not(preceding::*=.)]"))& "/", "/","|",CEILING((COLUMN()-COLUMN($F2)+1)/2,1))))-FIND("|",SUBSTITUTE( "/"&TEXTJOIN("/",,FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN("/",TRUE,SUBSTITUTE($B$3:$B$34,"/","/")),"/","</s><s>")&"</s></t>","//s[not(preceding::*=.)]"))& "/", "/","|",CEILING((COLUMN()-COLUMN($F2)+1)/2,1)))),""))

Cell Formulas
RangeFormula
F2:W2F2=TRIM(IF(AND(E2<>"",MOD(COLUMN(F$2)-COLUMN($F$2)+1,2)=0)," # ","")&IFERROR(MID(TEXTJOIN("/",,FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN("/",TRUE,SUBSTITUTE($B$3:$B$34,"/","/")),"/","</s><s>")&"</s></t>","//s[not(preceding::*=.)]")),FIND("|",SUBSTITUTE( "/"&TEXTJOIN("/",,FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN("/",TRUE,SUBSTITUTE($B$3:$B$34,"/","/")),"/","</s><s>")&"</s></t>","//s[not(preceding::*=.)]"))& "/", "/","|",CEILING((COLUMN()-COLUMN($F2)+1)/2,1))),FIND( "/",TEXTJOIN("/",,FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN("/",TRUE,SUBSTITUTE($B$3:$B$34,"/","/")),"/","</s><s>")&"</s></t>","//s[not(preceding::*=.)]"))& "/",FIND("|",SUBSTITUTE( "/"&TEXTJOIN("/",,FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN("/",TRUE,SUBSTITUTE($B$3:$B$34,"/","/")),"/","</s><s>")&"</s></t>","//s[not(preceding::*=.)]"))& "/", "/","|",CEILING((COLUMN()-COLUMN($F2)+1)/2,1))))-FIND("|",SUBSTITUTE( "/"&TEXTJOIN("/",,FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN("/",TRUE,SUBSTITUTE($B$3:$B$34,"/","/")),"/","</s><s>")&"</s></t>","//s[not(preceding::*=.)]"))& "/", "/","|",CEILING((COLUMN()-COLUMN($F2)+1)/2,1)))),""))
E3:E17E3=IFERROR(TEXT(INDEX($A$3:$A$34,AGGREGATE(15,6,MATCH($A$3:$A$34,$A$3:$A$34,0)/(MATCH($A$3:$A$34,$A$3:$A$34,0)=(ROW($A$3:$A$34)-ROW($A$3)+1)),ROWS($A$3:A3))),"mm-dd-yyyy"),"")
F3:F17,X3:X16,V3:V17,T3:T17,R3:R17,P3:P17,N3:N17,L3:L17,J3:J17,H3:H17F3=IFERROR(IF(F$2<>"",SUMPRODUCT(--($A$3:$A$34=VALUE($E3)),--ISNUMBER(FIND(F$2,$B$3:$B$34)),$C$3:$C$34/(LEN($B$3:$B$34)-LEN(SUBSTITUTE($B$3:$B$34,"/",""))+1)),""),"")
G3:G17,W3:W17,U3:U17,S3:S17,Q3:Q17,O3:O17,M3:M17,K3:K17,I3:I17G3=IFERROR(IF(AND(G$2<>"",$E3<>""),COUNTIFS($A$3:$A$34,VALUE($E3),$B$3:$B$34,"*"&F$2&"*"),""),"")
Press CTRL+SHIFT+ENTER to enter array formulas.
 
Last edited:
Upvote 0

Forum statistics

Threads
1,214,914
Messages
6,122,211
Members
449,074
Latest member
cancansova

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top