合并数据(但忽略空白单元格)


2

我正在寻找在Excel中合并不同单元格的文本数据。我目前正在使用公式:

=J3&", "&K3&", "&L3&", "&M3

当我所有的单元格都包含文本时,结果正是我想要的。

但是,在某些情况下,有些单元格中没有数据。目前,如果单元格中没有数据,我的公式将仅返回“,,”。有没有办法重写公式,以便它忽略不包含任何数据的单元格?

Answers:


3

使用Office 365 Excel,这变得容易。

Office 365 Excel引入了TEXTJOIN()

=TEXTJOIN(", ",TRUE,J3:M3)

随着TRUE作为第二个标准,它会自动跳过所有空白。

注意:我知道OP状态Excel 2010,这是供将来的读者使用的。


0

尝试向IF()每个单元格添加一条语句:

=IF(J3<>"";J3;"")&(IF(K3<>"";", "&K3;""))&(IF(L3<>"";", "&L3;""))&(IF(M3<>"";", "&M3;""))

请注意,第一条IF()语句的公式略有变化。


;如果J3为空,这将以字符串开头,可能要添加;到J3并使用MID()从第二个字符开始,以确保;不会添加。
斯科特·克莱纳

@ScottCraner不,不会。因此,我对此进行了修正:“注意微小的变化...”。但是,如果J3和K3都为空,则它将以;开头。
凯文·安东尼·奥佩加德·罗斯

抱歉,,如果J3为空,它将在前面留下a 。看到这里
Scott Craner

0

尝试这个:

=CONCATENATE(  IF(ISBLANK(J3),"",J3&", "),  IF(ISBLANK(K3),"",K3&", "),  IF(ISBLANK(L3),"",L3&", "),  IF(ISBLANK(M3),"",M3))

Microsoft Excel ISBLANK函数可用于检查空白或空值。

此处的ISBLANK()功能用于检查单元格是否具有值。如果没有值,则将一个空白""字符串添加到结果中。否则,", "将添加单元格值和字符串。


感谢您的贡献。你能解释一下吗?:)
bertieb

您处在正确的轨道上,但是如果在此之后没有值,那么将逗号连接到当前值将留下一个多余的逗号。
fixer1234 '18

0

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)

在此处输入图片说明


-2

在要获取级联结果的空白单元格中输入此公式。

=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不是空白单元格,请根据需要调整单元格地址。


1
您的第一个公式与您之前20小时发布的Kevin解决方案基本相同。第二个和第三个公式不会在问题之间添加分隔符。请仅在实际回答问题并且与现有答案相比提供新信息的情况下发布答案。
朱塔什(MátéJuhász)

@MátéJuhász,实际上我还没有注意到Kevin的回答,在我的第二个公式中,单独的是Blank而不是逗号。现在,我已经编辑了第二和第三公式。在更大的范围内,我展示了3个不同的示例。:-)
Rajesh S

第一个公式是不正确的,因为它在每个缺失值(OP试图纠正的地方)的地方都放了一个不希望的逗号,而在要分离的实际值时不加逗号。第二个公式重复了OP试图解决的问题,并且在J3和K3都具有值时排除了逗号。如果您实际上创建了示例并在有和没有缺失值的情况下测试了这些公式,那么当您阅读问题时,很明显答案是错误的。
fixer1234 '18

@ fixer1234,两个公式都可以正常工作,如果您觉得可以上传屏幕截图。
Rajesh S

我发布了答案,因为这么多人弄错了这个答案。使用我使用的可能组合示例,并针对它测试您的公式。您会看到答案中的两个公式都不符合问题的要求。
fixer1234 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.