【问题标题】:Excel 2013 | List content of non-blank cells in arrayExcel 2013 |列出数组中非空白单元格的内容
【发布时间】:2021-04-05 16:50:49
【问题描述】:

在 Excel 2013 中,我需要在从 H1 到 H10 的单元格中列出数组 A9:E18 上的单元格内容(因为我已经知道该数组中总会有 10 个非空白单元格,其余的都是空的)。 我找不到合适的公式来完成它。 有人可以帮帮我吗?

【问题讨论】:

  • 可以发布一些示例数据吗?
  • 目前还没有数据,我只是在构建它的结构。单元格将由文本值填充。也许我没有正确解释情况,我的错。数组 A9:E18 将只有空单元格,但其中 10 个将由文本值填充。我需要从 H1 到 H10 列出这 10 个值。
  • 你能检查我的答案吗?

标签: excel


【解决方案1】:

我建议您将FILTERXML()TEXTJOIN() 函数一起使用。不幸的是Excel2013 没有TEXTJOIN() 功能。您可以使用@Scott Craner 答案的这篇文章TextJoin UDF For Excel 2013 中的自定义TEXTJOIN() 函数。然后使用FILTERXML(),如下所示。

=IFERROR(INDEX(FILTERXML("<t><s>"&TEXTJOIN("</s><s>",TRUE,$A$1:$E$18)&"</s></t>","//s"),ROW($A1)),"")

使用 Excel365 你可以简单地使用-

=FILTERXML("<t><s>"&TEXTJOIN("</s><s>",TRUE,$A$1:$E$18)&"</s></t>","//s")

【讨论】:

  • 不幸的是,它不能正常工作,只给我回了预期的 10 个结果中的 3 个。
  • 那你的数据有问题。你用的是哪个公式?
  • 这个,=IFERROR(INDEX(FILTERXML(""&TEXTJOIN("",TRUE,$A$1:$E$18)&" ","//s"),ROW($A1)),"") 只是使用 ;而不是 , 并将数组修改为 $A$9:$E$18 和 ROW($A9) 因为我的数据在数组 A9:E18 中。
  • 自己修复了错误,我已将 ROW($A1) 修改为 ROW($A9) ,它需要保持这种状态。现在可以了,非常感谢您的帮助:)
  • 很高兴知道它有帮助。
猜你喜欢
  • 2022-12-07
  • 1970-01-01
  • 2017-10-01
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
  • 2020-02-03
相关资源
最近更新 更多