0

这是我在工作中从数据库中转储的问题,其格式相当复杂。基本上,它不会像单独的关系表那样为您提供显示的信息。

示例:假设我有以下信息列

ID、颜色、尺寸、数量、类型

信息看起来像这样

ID 颜色 尺寸 数量 类型
棕色 20 1 1
C 黄色 10 2 2
D 棕色 40 5 1
蓝色 70 1 3
A 黄色 80 1 2
B 黄色 20 4 1
D 蓝色 70 4 2
C 蓝色 10 3 1

我需要的是更像这样的东西

ID 棕色尺码类型 蓝色尺码类型 黄色尺码类型
A 1 20 1 1 0 3 1 80 2
B 0 0 0 0 0 0 4 20 1
C 0 0 0 3 10 1 2 20 1
D 5 40 1 4 0 2 0 0 0

我最喜欢可以用一个excel公式来完成这个,可能是一个叫做sumifs的公式,但我似乎无法让它工作,对此有任何帮助将不胜感激。

4

2 回答 2

1

您可以通过在数组公式中使用 SUM 和 IF 的组合来做到这一点。

假设您的数据表从单元格 A1 开始,您的结果表从单元格 A11 开始,首先在单元格 B12、C12 和 D12 中分别输入以下公式,确保使用 CONTROL-SHIFT-ENTER 组合键输入它们。

B12    =SUM(IF($B$2:$B$9=B$11,IF($A$2:$A$9=$A12,$D$2:$D$9,0)))

C12    =SUM(IF($B$2:$B$9=B$11,IF($A$2:$A$9=$A12,$C$2:$C$9,0)))

D12    =SUM(IF($B$2:$B$9=B$11,IF($A$2:$A$9=$A12,$E$2:$E$9,0)))

将单元格复制到数据表的底部,在本例中为第 15 行。

然后将您创建的公式块复制到单元格 E12,结果表的蓝色部分从此处开始。然后将相同的公式块复制到单元格 H12,结果表的黄色部分从此处开始。

此解决方案假定您的数据表中没有重复的 ID 和 COLOR 组合,并且没有丢失任何组合。如果缺少 ID 和颜色的组合,则需要将公式包装在 IFERROR 函数中(在 Excel 2010 中)。

于 2012-12-08T20:40:10.050 回答
0

我转置数据表的方式会像这样运行......

你的例子有点复杂,所以我不打算使用你的全部数据,只用大小。首先创建一个名为 Index 的列

A                B   C       D
INDEX            ID  COLOR   SIZE  
=A3 & "-" & B3   A   brown   20    
=A4 & "-" & B4   C   yellow  10    
.                D   brown   40   
.                A   blue    70   
.                A   yellow  80   
.                B   yellow  20   
D-blue           D   blue    70   
C-blue           C   blue    10    

创建一个等效的表,它将标题行与 ID 列组合在一起

F      G                    H             I
ID     brown                blue          yellow
A      =$F2 & "-" & G$1     .             .
B      .                    .             .
C      .                    C-blue        C-yellow    
D      .                    D-blue        D-yellow

最后将其包装在 VLOOKUP 或 OFFSET(MATCH(_)) 中,并可能出现 IFERROR

ID     brown                blue          yellow
A      =IFERROR(VLOOKUP($F2 & "-" & G$1,$A$3:$D$10,4,FALSE),"Err")
B      .                    .             .
C      .                    10            10    
D      .                    70            Err

无论如何,这就是我通常进行这种转换的方式

于 2014-02-07T13:53:50.513 回答