Excel合并文本字符串(是/否)

时间:2013-07-09 18:12:11

标签: excel excel-vba excel-formula excel-2010 vba

尝试将数据合并到一个主表中。我有类似下面的内容:

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

3 个答案:

答案 0 :(得分:0)

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

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

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

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

" "如果B21"N"如果B22,则返回{{1}},等等。最后,您可以复制整个列,以及“粘贴特殊值 - 值”以获得您想要的内容。

答案 1 :(得分: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

并向下复制可能适合。

编辑简化修订公式以反映编辑问题:

为(空白)和具有最小可见行号的单元格中的增益(Y / N)(假设为ColumnB)的滤波器Sheet1输入:

=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中的A4更改为最小的可见行号(根据需要调整列引用)并根据需要进行复制。

答案 2 :(得分: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