excel - 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 但没有运气,但我不确定除了其中的数据长度之外还要检查什么。
解决方案
该TRIM
函数不仅删除了前导和尾随空格,而且还将任何内部的多个空格序列减少到一个空格。通过包装整个公式,TRIM(..)
您可以忽略创建双空格的可能性。
关于
当我将该引用更改为:
&IF(LEN(I12>0);"-"&TRIM(I12)&"+")
无论里面有什么,-
都可以打印+
I12
这表明I12
实际上有一个或多个空格。通过使用修复它LEN(TRIM(I12))>0
或者更好的是,继续连接I12
并TRIM
清理空间。
注意:我假设该IF(LEN(I12>0);"-"&TRIM(I12)&"+")
版本只是为了测试那段代码,所以没有添加-
和+
.
所以,你的整个公式可以变成
=TRIM(M17&IF(M17<>N17;"-"&TRIM(N17);"")&" "&G17&" "&H17&" "&I17&" "&J17)
如果您有支持的 Excel 版本,TEXTJOIN
则可以使用
=TRIM(M16&IF(M16<>N16,"-"&TRIM(N16),"")&" "&TEXTJOIN(" ",TRUE,G16:J16))
推荐阅读
- pandas - 当从两个不同的 pd 数据帧传递完全相同的值时,为什么我们不能得到与 hashlib.sha256 相同的哈希值?
- python - 我想根据写入的点数计算形成的多边形的面积,前提是最多4个点
- r - 给定生存时间,将数据转换为 R 中的长格式
- sql - 从 Redshift 查询中的 JSON 数组中删除括号和逗号
- c# - ActiveMQ Artemis 和 MassTransit。VirtualTopics 队列目标被自动删除
- java - 尝试打印圣诞树时没有任何显示
- javascript - ERPNEXT 客户端脚本掩码代码不起作用
- c - ctype库中的atoi函数在C中不起作用
- html - 获取表格点击动态生成表格行的内容
- javascript - 使用本机反应在实时数据库火力库中检索孩子的孩子