【问题标题】:How to maintain true Blank Cells when copying a column复制列时如何保持真正的空白单元格
【发布时间】: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


【解决方案1】:

请在您的单元格 E2 中尝试此公式并复制下来。

=LOOKUP(2,1/($A$1:$A2<>""),$A:$A)

用这个公式可以达到相反的效果。

=IF(A2="","",A2)

即使源为空白,第一个公式也会将标题复制到每一行,而第二个公式会为空白单元格生成一个空白单元格。另一种方法是允许写入零,但使用单元格格式或通用设置(对于整个工作表)抑制零值的显示。

【讨论】:

    【解决方案2】:

    您的意思是要使用TEXTJOIN() 中的条件,嵌套IF()

    D1中的公式:

    =SUBSTITUTE(FILTERXML("<t><s>'"&TEXTJOIN("</s><s>'",,IF(A2:B13<>0,A2:B13,""))&"</s></t>","//s"),"'","")
    

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多