Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 复制列时如何保持真正的空白单元格_Arrays_Excel_Vba_Excel Formula_Office365 - Fatal编程技术网

Arrays 复制列时如何保持真正的空白单元格

Arrays 复制列时如何保持真正的空白单元格,arrays,excel,vba,excel-formula,office365,Arrays,Excel,Vba,Excel Formula,Office365,问题:我在A列中有数据作为某种类型的标题,在B列中有副标题。因为A列在标题之间有空白单元格。 如果将第二张纸中的单元格A1设置为等于第一张纸上的A1,并将其复制到空白单元格,则返回为“0”。这会弄乱依赖于真正空白单元格的公式 我附上了一张图片,直观地解释了这个问题。 复制所需输出和问题: 在A列和B列中输入随机数据,在B列中留空 在C列中输入:=SUBSTITUTE(FILTERXML(“&TEXTJOIN(“”,A1:B50)和“//s”),“”,”,“)” 这将返回按逻辑顺序组合标题

问题:我在A列中有数据作为某种类型的标题,在B列中有副标题。因为A列在标题之间有空白单元格。 如果将第二张纸中的单元格A1设置为等于第一张纸上的A1,并将其复制到空白单元格,则返回为“0”。这会弄乱依赖于真正空白单元格的公式

我附上了一张图片,直观地解释了这个问题。

复制所需输出和问题:

  • 在A列和B列中输入随机数据,在B列中留空

  • 在C列中输入:
    =SUBSTITUTE(FILTERXML(“&TEXTJOIN(“”,A1:B50)和“//s”),“”,”,“)”

  • 这将返回按逻辑顺序组合标题和副标题的正确结果

  • 但是,如果将列E和F分别设置为等于列A和B,并在列G中输入以下内容:
    =SUBSTITUTE(FILTERXML(“&TEXTJOIN(“”,.D1:E50)和“/s”),“”,“”,”)

  • 数据将返回正确排序的结果,但现在每个标题和副标题之间都有一组0,因为公式现在包含了原来为0的空白单元格

我尝试过的内容:从美学角度来说,您可以将“0”单元格设置为在高级设置中不显示0,但正如名称所述,它仍然是一个0,只是隐藏,但不从公式中显示。我尝试将单元格设置为文本,只是为了尝试消除0,但这没有影响,因为数字仍然被识别为文本。我还尝试用代码
=IF(E1=“0”,E1)
=IF(E1=“0”,NA(),E1)
消除0。这会删除0或添加N/A,但最终这些单元格仍会被上述公式识别,并输入0或公式失败

有人知道如何使一列的空白单元格与另一列相等,并且仍然保持真正的空白单元格而不是0吗?或者,如果有人知道我如何修改公式以忽略0,那也太好了。我在VBA方面没有任何经验,但我愿意学习/复制并粘贴一段代码来消除这个问题


非常感谢您的帮助,或者如果您认为不可能,请告诉我。

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

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

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

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

D1
中的公式:

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

实现此效果的最简单方法是在A列中没有空白单元格。相反,应用条件格式来隐藏重复(公式:=A2=A1,并将字体颜色设置为与背景相同)。这样,用户就不会看到重复,您的公式也可以正常工作。。
=SUBSTITUTE(FILTERXML("<t><s>'"&TEXTJOIN("</s><s>'",,IF(A2:B13<>0,A2:B13,""))&"</s></t>","//s"),"'","")