如何解决Excel:使用IF语句串联单元格和文本
我正在尝试合并几个数据单元。我的问题是在数据之间放置空格,更重要的是在没有数据时不要放置空格,这样我就不会得到双倍空格。这是一个示例:
=TRIM(M12)&IF(N12<>M12;"-"&TRIM(N12);"")&" "&TRIM(G12)&" "&TRIM(H12)&IF(LEN(I12>0);" "&TRIM(I12)&" ")&TRIM(J12)
数据为开始年份(M),结束年份(N),品牌(G),型号(H),车身样式(I),传动系(J)。
对于某些年份,开始年和结束年的值是相同的。
&IF(N12<>M12;"-"&TRIM(N12);"")
这很好用。如果结束年份与开始年份相同,则不会在其后添加-或空格。
对于许多行,主体样式没有任何价值。
&IF(LEN(I12>0);" "&TRIM(I12)&" ")
如果存在,它将打印出人体样式,但是如果没有任何样式,它将始终添加一个空格。
当我将该引用更改为:
&IF(LEN(I12>0);"-"&TRIM(I12)&"+")
-和+都打印,无论I12中的内容是什么
我尝试了许多变体。无用,有些抛出错误。可能显然,我不知道我在Excel中正在做什么,但我认为必须有一种更好的方法来检查单元格I12?我试过> 1,但没有运气,但是除了其中的数据长度,我不确定要检查什么。
解决方法
func GetCodeByID(codeID string)(models.CodeModel,bool,error){
ctx,cancel := context.WithTimeout(context.Background(),15*time.Second)
defer cancel()
db := dbConnection.MongoConexion.Database("diem")
col := db.Collection("codes")
var codeInfo models.CodeModel
err := col.FindOne(ctx,bson.M{
"_id" : codeID,}).Decode(&codeInfo)
if err != nil{
return codeInfo,false,err
}
return codeInfo,true,err
}
函数不仅删除前导和尾随空格,还将所有内部多个空格序列减少为一个空格。通过将整个公式包装在TRIM
中,您可以忽略创建双倍空格的可能性。
关于
当我将该引用更改为:
TRIM(..)
&IF(LEN(I12>0);"-"&TRIM(I12)&"+")
和-
的打印内容均与+
中的内容无关
这表明I12
实际上有一个或多个空格。通过使用I12
或者更好,只需继续并连接LEN(TRIM(I12))>0
并让I12
清理空格。
注意:我假设TRIM
版本只是为了测试那段代码,因此没有添加IF(LEN(I12>0);"-"&TRIM(I12)&"+")
和-
的想法。
因此,您的整个公式可以变为
+
如果您的Excel版本支持=TRIM(M17&IF(M17<>N17;"-"&TRIM(N17);"")&" "&G17&" "&H17&" "&I17&" "&J17)
,则可以使用
TEXTJOIN
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。