1

如果数据有多个列,我需要为每个 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 中的所有值都是恒定的。

4

2 回答 2

0

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

Excel 选项

这是我的示例数据(由于我对数据输入很懒惰而缩短了 :-)

起始数据

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

  2. 使用 excel 公式从 table1 和 table2 中确定要使用的行

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

在此处输入图像描述

如果您想变得更漂亮,可以更改公式以清除所有 21 (21=7*3) 个条目,例如=IF(Counter>(B14*C14),"",--do stuff--).

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

SQL 选项

虽然我知道这是一个 excel 问题,但如果我没有提醒您使用正确的工具来完成这项工作,我将是失职。如果您可以在这些表上运行 SQL,请使用:

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

SQL 的默认连接是笛卡尔积,所以一切正常。这将比说服 Excel 这样做更优雅。

于 2013-01-23T18:58:20.570 回答
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,G$14)

(5) =INDEX($D$3:$F$5,$C17,H$14)

(6)=指数($D$3:$F$5,$C17,I$14)

(7)=指数($D$3:$F$5,$C17,J$14)

于 2013-09-03T09:16:47.873 回答