【发布时间】:2021-05-11 15:04:36
【问题描述】:
问题:我在 A 列中有数据作为某种标题,在 B 列中有子标题。因为 A 列的标题之间有空白单元格。 如果我将第二张纸中的单元格 A1 设置为等于第一张纸上的 A1 并将其复制到整个空白单元格中,则返回为“0”。这与依赖于真正空白单元格的公式相混淆。
复制所需的输出和问题:
-
在 A 列和 B 列中输入随机数据,在 B 列中留空。
-
在 C 列输入:
=SUBSTITUTE(FILTERXML("<t><s>"&TEXTJOIN("</s><s>'",,A1:B50)&"</s></t>","//s"),"'","")' -
这将返回按逻辑顺序组合标题和副标题的正确结果。
.
-
但是,如果您将 E 列和 F 列分别设置为 A 列和 B 列,并在 G 列中输入以下内容:
=SUBSTITUTE(FILTERXML("<t><s>"&TEXTJOIN("</s><s>'",,D1:E50)&"</s></t>","//s"),"'","") -
数据将返回正确排序,但现在每个标题和副标题之间有一堆 0,因为公式现在包含原本空白为 0 的单元格。
我尝试过的内容:从美学上讲,您可以将“0”单元格设置为在高级设置中不显示 0,但正如名称所描述的那样,它仍然是 0 并且只是隐藏但不在公式中。我尝试将单元格设置为 Text 只是为了尝试消除 0 但这没有影响,因为数字仍被识别为文本。我还尝试使用代码=IF(E1="0","",E1) 和=IF(E1="0",NA(), E1) 消除0。这会删除 0 或添加 N/A#,但最终这些单元格仍会被上述公式识别,并输入 0 或公式失败。
有谁知道如何使空白单元格的一列等于另一列,并且仍然保持真正的空白单元格而不是 0?或者,如果有人知道我可以如何修改我的公式以忽略 0,那也很棒。我没有任何 VBA 经验,但我愿意学习/复制和粘贴可以解决此问题的代码。
感谢任何帮助,或者如果您认为不可能,请告诉我。
【问题讨论】:
-
最简单的实现效果的方法是在A列中没有空白单元格。相反,应用条件格式来隐藏重复(公式:=A2=A1并设置字体颜色与背景相同)。这样,用户将看不到重复,并且您的公式可以正常工作..
标签: arrays excel vba excel-formula office365