Answers:
使用Office 365 Excel,这变得容易。
Office 365 Excel引入了TEXTJOIN()
=TEXTJOIN(", ",TRUE,J3:M3)
随着TRUE
作为第二个标准,它会自动跳过所有空白。
注意:我知道OP状态Excel 2010,这是供将来的读者使用的。
尝试向IF()
每个单元格添加一条语句:
=IF(J3<>"";J3;"")&(IF(K3<>"";", "&K3;""))&(IF(L3<>"";", "&L3;""))&(IF(M3<>"";", "&M3;""))
请注意,第一条IF()
语句的公式略有变化。
,
如果J3为空,它将在前面留下a 。看到这里
尝试这个:
=CONCATENATE( IF(ISBLANK(J3),"",J3&", "), IF(ISBLANK(K3),"",K3&", "), IF(ISBLANK(L3),"",L3&", "), IF(ISBLANK(M3),"",M3))
Microsoft Excel ISBLANK函数可用于检查空白或空值。
此处的ISBLANK()
功能用于检查单元格是否具有值。如果没有值,则将一个空白""
字符串添加到结果中。否则,", "
将添加单元格值和字符串。
Scott为较新版本的Excel提供了一个简洁的解决方案。到目前为止,其他三个解决方案都使用在任何版本的Excel中都可以使用的简单功能。但是,定界逗号实际上比这些公式处理的要复杂一些。要以这种解决方案样式完成此任务,每个逗号都需要一些逻辑。
以下是当前值和缺失值的可能组合:
第一行没有缺失值。接下来的四行在每个可能的位置都有一个缺失值。接下来的六行在每个可能的位置都有两个缺失值。然后是四个缺失值的四行,最后是所有缺失值。要在需要的地方(仅在需要的地方)使用逗号,您需要为每个逗号添加一些逻辑。
最简单的方法是将逗号与“ next”值关联。在每个逗号位置,如果前面没有值,则不存在逗号(每个位置的情况不同)。如果前面有值,则仅在下一个位置有值时才需要逗号。因此,逗号逻辑如下所示:
First comma: =IF(J3="","",IF(K3="","",", ")) or =IF(AND(J3<>"",K3<>""),", ","")
Second comma: =IF(J3&K3="","",IF(L3="","",", ")) or =IF(AND(J3&k3<>"",L3<>""),", ","")
Third comma: =IF(J3&K3&L3="","",IF(M3="","",", ")) or =IF(AND(J3&K3&L3<>"",M3<>""),", ","")
我将每个逗号放在单独的列中,以说明具有值的各种组合的模式:
解决方案使用逗号将值连接起来(如果没有,则为空白)。为了便于阅读,下面是插入了逗号作为其公式单元格引用的公式:
=IF(J3="","",J3) &N3 &IF(K3="","",K3) &O3 &IF(L3="","",L3) &P3 &IF(M3="","",M3)
将逗号公式替换为结果公式将为您提供:
=IF(J3="","",J3) &IF(AND(J3<>"",K3<>""),", ","") &IF(K3="","",K3) &=IF(AND(J3&k3<>"",L3<>""),", ","") &IF(L3="","",L3) &=IF(AND(J3&K3&L3<>"",M3<>""),", ","") &IF(M3="","",M3)
在要获取级联结果的空白单元格中输入此公式。
=IF(LEN(TRIM(J3))=0,",",J3)&IF(LEN(TRIM(K3))=0,",",K3)& IF(LEN(TRIM(L3))=0,",",L3)& IF(LEN(TRIM(M3))=0,"",M3)
或者您也可以使用它
=TRIM(J3 & K3 &","& L3&","&M3)
注意:在上面的示例中,单元格J3不是空白单元格,请根据需要调整单元格地址。
;
如果J3为空,这将以字符串开头,可能要添加;
到J3并使用MID()从第二个字符开始,以确保;
不会添加。