在多个单元格内容上有条件串联的最佳方法

时间:2019-03-14 10:05:57

标签: excel concatenation

我有一个带有以下标题的excel表

Name      Occupation     Income     Martial Status   Spouse Income 
Amy       Astronaut      H          M                     NA
Ben       Baker          M          S                     NA
Carl      NA             NA         M                     H
Dan       NA             NA         S                     NA
Eric      NA             NA         NA                    NA

仅当单元格不是“ NA”时,我希望将它们串联到一个单元格中,即,我想创建一个列,其内容如下:

Amy_Astronaut_H_M
Ben_Baker_M_S
Carl_M_H
Dan_S
Eric

目前我想到的是一系列的ifs:

=Name&"_"&if(istext(search("NA',Occupation,"")),"",Occupation&"_")
         &if(istext(search("NA',Income,"")),"",Income&"_")
         &if(istext(search("NA',Marital Status,"")),"",Marital Status&"_")
         &if(istext(search("NA',Spouse Income,"")),"",Spouse Income&"_")

在不更改现有表内容的情况下,我想知道是否存在一种更有效的方法?

2 个答案:

答案 0 :(得分:1)

这适用于您的示例。如果您有更高版本的Excel,则可以使用TEXTJOIN而不是CONCATENATE。

create temporary table test_db.public.test_table (col1 number);
insert into test_db.public.test_table values (-99999999999999999999999999999999999999); -- This works fine
insert into test_db.public.test_table values (-999999999999999999999999999999999999999); -- this errors

enter image description here

答案 1 :(得分:0)

我使用了以下信息:

   A    B    C   D
1  
2       A   NA   B

在B3到D3单元格中,我输入了以下公式:

=IF(B2="NA";"";B2) // Change to C and D accordingly

在B4单元格中,我输入了以下公式:

=TEXTJOIN("_";TRUE;B3:D3)

值为A_B