0

试图将数据合并到一张主表中。我有如下内容:

Sheet 1                Sheet 2                 Sheet 3
Name    Gain(Y/N)      Name    Gain(Y/N)       Name    Gain(Y/N)   
AAA     Y              AAA     Y               AAA     
BBB     N              BBB                     BBB     N
CCC                    CCC     Y               CCC     Y
DDD                    DDD                     DDD     Y
EEE                    EEE                     EEE     N

最终看起来像(将所有工作表合并到 sheet1 中)

Sheet 1                
Name    Gain(Y/N)         
AAA     Y                   
BBB     N              
CCC     Y               
DDD     Y               
EEE     N 

问题是合并功能不适用于文本字符串(Y/N)

我在想'if vlookup'或匹配索引之类的东西?但供多个参考?并且不会相互覆盖。也许有更简单的方法......

感谢您的帮助:D

4

3 回答 3

0

如果您不介意在每张纸上创建一个额外的列,您可以将“Y”和“N”变成一个数字。假设您的标签在 A 列中,您插入一个新列 B 并将以下内容放入 B2:

=IF(A2="Y", 3, IF(A2="N", 2, 1))

对所有工作表重复此操作。现在您可以使用“MAX”功能进行合并。2如果字母出现在任何地方等,它将返回"Y"。现在您可以通过将以下公式放在合并数据旁边的列中来返回 Y/N/blank:

=INDEX({" ","N","Y"}, B2)

这将返回" "if B2is 1"N"if B2is2等。最后,您可以复制整个列,并“粘贴特殊值”以获得您想要的结果。

于 2013-07-09T18:26:44.063 回答
0
=IF(OR(Sheet1!B2="Y",Sheet2!B2="Y",Sheet3!B2="Y"),"Y",IF(OR(Sheet1!B2="N",Sheet2!B2="N",Sheet3!B2="N"),"N",""))  

B2新的工作表中并复制下来可能适合。

编辑简化修改后的公式以反映对问题的编辑:

过滤 Sheet1 用于增益 (Y/N)(假定为 ColumnB)用于(空白)并在具有最小可见行号的单元格中输入:

=IF(OR(VLOOKUP(A4,Sheet2!A:B,2,0)="Y",VLOOKUP(A4,Sheet3!A:B,2,0)="Y"),"Y",IF(OR(VLOOKUP(A4,Sheet2!A:B,2,0)="N",VLOOKUP(A4,Sheet3!A:B,2,0)="N"),"N",""))  

4将s in s更改A4为最小的可见行号(根据需要调整列引用)并根据需要向下复制。

于 2013-07-09T18:37:08.940 回答
0

您不妨使用Microsoft Query将所有数据提取到数据透视表中,代码类似于:

SELECT Name, Gain, 'Sheet1' as [Sheet#]
FROM Sheet1
UNION
SELECT Name, Gain, 'Sheet2' as [Sheet#]
FROM Sheet2
UNION
SELECT Name, Gain, 'Sheet3' as [Sheet#]
FROM Sheet3
于 2013-12-18T11:09:24.793 回答