复制列时如何保持真正的空白单元格
How to maintain true Blank Cells when copying a column
问题: 我在 A 列中有数据作为某种标题,在 B 列中我有 subheadings.Because 该列的标题之间有空白单元格。
如果我将第二个 sheet 中的单元格 A1 设置为等于第一个 sheet 中的 A1 并将其复制到整个空白单元格 return 中作为“0”。这会扰乱依赖真正空白单元格的公式。
我已附上图片以直观地解释问题。
要复制所需的输出和问题:
在 A 列和 B 列中随机输入数据,在 B 列中留空。
在 C 列中输入:=SUBSTITUTE(FILTERXML("<t><s>"&TEXTJOIN("</s><s>'",,A1:B50)&"</s></t>","//s"),"'","")'
这将 return 以逻辑顺序组合标题和副标题的正确结果。
.
但是,如果您将 E 列和 F 列分别设置为等于 A 列和 B 列,并在 G 列中输入以下内容:=SUBSTITUTE(FILTERXML("<t><s>"&TEXTJOIN("</s><s>'",,D1:E50)&"</s></t>","//s"),"'","")
数据将 return 正确排序,但现在每个标题和副标题之间有一堆 0,因为公式现在包括最初为 0 的空白单元格。
我试过的:从美学上讲,您可以在高级设置中将“0”单元格设置为不显示 0,但正如名称所描述的那样,它仍然是 0,只是隐藏但不是从公式。我曾尝试将单元格设置为“仅文本”以尝试消除 0,但这没有任何影响,因为数字仍被识别为文本。我还尝试用代码 =IF(E1="0","",E1)
和 =IF(E1="0",NA(), E1)
消除 0。这会删除 0 或添加 N/A#,但最终这些单元格仍会被上述公式识别,并且输入 0 或公式失败。
有谁知道如何使空白单元格的一列与另一列相等,并且仍然保持真正的空白单元格而不是 0?或者,如果有人知道如何修改我的公式以忽略 0,那也很好。我在 VBA 方面没有任何经验,但我愿意 learn/copy 并粘贴一个代码来解决这个问题。
感谢任何帮助,或者如果您认为不可能,请告诉我。
请在您的单元格 E2 中尝试此公式并向下复制。
=LOOKUP(2,1/($A:$A2<>""),$A:$A)
用这个公式达到相反的效果。
=IF(A2="","",A2)
第一个公式会将 header 复制到每一行,即使源为空白也是如此,而第二个公式为空白单元格生成一个空白单元格。另一种方法是允许写入零但使用单元格格式或通用设置(对于整个 sheet)抑制零值显示。
您的意思是要在 TEXTJOIN()
中使用条件,一个嵌套的 IF()
:
D1
中的公式:
=SUBSTITUTE(FILTERXML("<t><s>'"&TEXTJOIN("</s><s>'",,IF(A2:B13<>0,A2:B13,""))&"</s></t>","//s"),"'","")
问题: 我在 A 列中有数据作为某种标题,在 B 列中我有 subheadings.Because 该列的标题之间有空白单元格。 如果我将第二个 sheet 中的单元格 A1 设置为等于第一个 sheet 中的 A1 并将其复制到整个空白单元格 return 中作为“0”。这会扰乱依赖真正空白单元格的公式。
我已附上图片以直观地解释问题。
要复制所需的输出和问题:
在 A 列和 B 列中随机输入数据,在 B 列中留空。
在 C 列中输入:
=SUBSTITUTE(FILTERXML("<t><s>"&TEXTJOIN("</s><s>'",,A1:B50)&"</s></t>","//s"),"'","")'
这将 return 以逻辑顺序组合标题和副标题的正确结果。
.
但是,如果您将 E 列和 F 列分别设置为等于 A 列和 B 列,并在 G 列中输入以下内容:
=SUBSTITUTE(FILTERXML("<t><s>"&TEXTJOIN("</s><s>'",,D1:E50)&"</s></t>","//s"),"'","")
数据将 return 正确排序,但现在每个标题和副标题之间有一堆 0,因为公式现在包括最初为 0 的空白单元格。
我试过的:从美学上讲,您可以在高级设置中将“0”单元格设置为不显示 0,但正如名称所描述的那样,它仍然是 0,只是隐藏但不是从公式。我曾尝试将单元格设置为“仅文本”以尝试消除 0,但这没有任何影响,因为数字仍被识别为文本。我还尝试用代码 =IF(E1="0","",E1)
和 =IF(E1="0",NA(), E1)
消除 0。这会删除 0 或添加 N/A#,但最终这些单元格仍会被上述公式识别,并且输入 0 或公式失败。
有谁知道如何使空白单元格的一列与另一列相等,并且仍然保持真正的空白单元格而不是 0?或者,如果有人知道如何修改我的公式以忽略 0,那也很好。我在 VBA 方面没有任何经验,但我愿意 learn/copy 并粘贴一个代码来解决这个问题。
感谢任何帮助,或者如果您认为不可能,请告诉我。
请在您的单元格 E2 中尝试此公式并向下复制。
=LOOKUP(2,1/($A:$A2<>""),$A:$A)
用这个公式达到相反的效果。
=IF(A2="","",A2)
第一个公式会将 header 复制到每一行,即使源为空白也是如此,而第二个公式为空白单元格生成一个空白单元格。另一种方法是允许写入零但使用单元格格式或通用设置(对于整个 sheet)抑制零值显示。
您的意思是要在 TEXTJOIN()
中使用条件,一个嵌套的 IF()
:
D1
中的公式:
=SUBSTITUTE(FILTERXML("<t><s>'"&TEXTJOIN("</s><s>'",,IF(A2:B13<>0,A2:B13,""))&"</s></t>","//s"),"'","")