我在 Q 列中有通过另一个 excel 公式返回的数据,并且我希望 excel 公式在 R2 单元格中获得 o/p,如下所示
Q专栏
1234567810 1111 8787
{空白单元格}
1234567811 1111 8787
{空白单元格}
{空白单元格}
{空白单元格}
{空白单元格}
{空白单元格}
{空白单元格}
1234567812 1111 8787
{空白单元格}
{空白单元格}
R2 单元格
1234567810 1111 8787,1234567811 1111 8787,1234567812 1111 8787
我尝试了公式=TEXTJOIN(",",TRUE,Q2:Q100)
,但它显示 o/p
1234567810 1111 8787,,1234567811 1111 8787,,,,,,,1234567812 1111 8787,,
因此,它不会忽略空白单元格值,因为空白单元格值是通过 excel 公式返回的,这实际上并没有使它们变为空白,而只是将它们显示为空白
答案1
评论中的答案以及对另一个问题的答案看起来都很不错。但这里有一个简单的答案,不需要使用函数TEXTJOIN
(Excel 2013 及以下版本中不存在该函数)或使用 VBA。
设置“辅助列”;例如,列 Z
。在 中Z2
,输入
=IF(Q2<>"",Q2,"")
您可能认为这=Q2
将是等效的,但如果Q2
为空白,则=Q2
会给您一个0
;请参阅在 Excel 中引用空白单元格时显示空白。或者,=Q2&""
可能同样好。
在Z3
,输入
=Z2&IF(AND(Z2<>"",Q3<>""),",","")&Q3
这将为您提供 所需的最小化连接(无空格列表)形式的Q2
和。如果(等于)和都非空,则您将获得Q3
Z2
Q2
Q3
Q2 & "," & Q3
即apple,banana
。如果或Q2
为Q3
空白,则得到
Q2 & Q3
即,只是简单的apple
、只是简单的banana
或者空白。
选择Z3
并向下拖动/填充到Z100
。在每一行,这会添加到列表中,仅当 不为空时才插入逗号。(这里我隐藏了列 - 。)Zn
Qn
Qn
S
Y
然后只需设置R2
为。 (或者 ,如果整个列表有可能为空白,=Z100
则使用。)=Z100&""
答案2
显示所有信息(尤其是 Q 列中的公式)会很有帮助。我怀疑 Q 列中的公式没有返回空白""
,而是返回了空格" "
或其他非打印字符。
如果它返回空格,您有两个选择:
- 将 Q 列公式更改为返回空白,然后
TEXTJOIN
按照您在问题中所做的那样使用 - 使用以下公式可以有效地将空格变成空:
=TEXTJOIN(",",TRUE,TRIM(Q2:Q100))
这是一个数组公式,必须按住ctrl
+shift并点击 来确认enter。如果您正确执行此操作,Excel 将{...}
在公式周围放置括号。
类似的方法也可用于不同的非打印字符。
答案3
如果数据范围内有几个空白单元格,那么您需要使用如下所示的公式。
=TEXTJOIN(",",TRUE,Q2,Q4,Q11)