Arrays 复制列时如何保持真正的空白单元格
问题:我在A列中有数据作为某种类型的标题,在B列中有副标题。因为A列在标题之间有空白单元格。 如果将第二张纸中的单元格A1设置为等于第一张纸上的A1,并将其复制到空白单元格,则返回为“0”。这会弄乱依赖于真正空白单元格的公式 我附上了一张图片,直观地解释了这个问题。 复制所需输出和问题: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列中输入随机数据,在B列中留空
- 在C列中输入:
=SUBSTITUTE(FILTERXML(“&TEXTJOIN(“”,A1:B50)和“//s”),“”,”,“)”
- 这将返回按逻辑顺序组合标题和副标题的正确结果
- 但是,如果将列E和F分别设置为等于列A和B,并在列G中输入以下内容:
=SUBSTITUTE(FILTERXML(“&TEXTJOIN(“”,.D1:E50)和“/s”),“”,“”,”)
- 数据将返回正确排序的结果,但现在每个标题和副标题之间都有一组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"),"'","")