在excel中用多列数据创build唯一的行

如果数据和我需要为每个LOC1和LOC2创build唯一的行,我有多列:模型的图片:

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 

创build:

 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将构build一行,其中FC,AMT,Type中的所有值是恒定的。

看起来你想要这两个表的“ 笛卡尔积 ”。

Excel选项

这里是我的样本数据(缩短,因为我懒惰的数据input:-)

启动数据

  1. 创build一个“计数器”列,每行增加1。

  2. 使用Excel公式来确定从table1和table2使用哪一行

  3. 根据(2)中find的行#s,使用excel函数'INDEX'从每个表中提取内容,

在这里输入图像说明

如果你想获得更多的信息,你可以改变公式来清除所有21(21 = 7 * 3)条目,如=IF(Counter>(B14*C14),"",--do stuff--)

这里是一个Excel工作簿的例子 ,展示了它如何结合在一起。

SQL选项

虽然我知道这是一个非常好的问题,但是如果我没有提醒你find合适的工具,我会感到失望的。 如果您可以在这些表上运行SQL,请使用:

 SELECT t1.*, t2.* FROM table1 t1, table2 t2; 

SQL的默认连接是一个笛卡儿积,所以这一切都可以实现。 这会比说服Excel来做得更优雅。

伟大的解决scheme,没有一个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)=指数($ 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)