如果数据我有多列,我需要为每个LOC1和&创建唯一的行。 LOC2: 模拟图片:
LOC 1 LOC 2 FC AMT Type
CUN ABQ LLA0PNR 10 AN1
CUN AUS BLA0PNR 15 NR2
CUN GSP QLA0PNR 16 AN1
CUN DAL HLA0PNR 14 NR2
CUN HOU WLA0PNR 13 AN1
CUN ELP RLA0PNR 12 AN3
CUN MDW OLA0PNR 11 NR4
创建:
CUN ABQ LLA0PNR 10 AN1
CUN ABQ BLA0PNR 15 NR2
CUN ABQ QLA0PNR 16 AN1
CUN ABQ HLA0PNR 14 NR2
CUN ABQ WLA0PNR 13 AN1
CUN ABQ RLA0PNR 12 AN3
CUN ABQ OLA0PNR 11 NR4
CUN AUS ...... .. ...
CUN AUS ...... .. ...
将为每个LOC1和LOC2构建一行,其中FC,AMT,Type中的所有值都是常量。
答案 0 :(得分:0)
看起来你想要这两个表的'Cartesian Product'。
Excel选项
这是我的示例数据(由于我对数据输入很懒,因此缩短了: - )
创建一个'计数器'列,每行增加1。
使用excel公式确定table1和table2中使用哪一行
如果你想获得更好的,你可以改变公式,以清除所有21(21 = 7 * 3)条目,如=IF(Counter>(B14*C14),"",--do stuff--)
。
这是example Excel workbook,展示了它们如何结合在一起。
SQL选项
虽然我知道这是一个很好的问题,但如果我没有提醒你找到合适的工具,我就会失职。如果可以在这些表上运行SQL,请使用:
SELECT t1.*, t2.* FROM table1 t1, table2 t2;
SQL的默认连接是笛卡尔积,因此一切正常。这比说服Excel去做更优雅。
答案 1 :(得分:0)
很好的解决方案,没有VB脚本,非常感谢
以下是上例中使用的公式:
(1)= FLOOR((A17-1)/ $ C $ 14,1)+1
(2)= MOD(A17-1,$ C $ 14)+1
(3)= INDEX($ A $ 3:$ B $ 9,$ B17,F $ 14)
(4)= INDEX($ A $ 3:$ B $ 9,$ B17,$ 14)
(5)= INDEX($ D $ 3:$ F $ 5,$ C17,H $ 14)
(6)= INDEX($ d $ 3:$ F $ 5,$ C17,I $ 14)
(7)= INDEX($ d $ 3:$ F $ 5,$ C17,J $ 14)