使用 Excel 公式将数组转换为字符串,可以吗?

使用 Excel 公式将数组转换为字符串,可以吗?

使用 Excel 公式将数组转换为字符串,可以吗?

我知道如何使用 VBA 来实现这一点,但我必须共享我的工作簿,而且我必须假设其他人无法启用我编写的 VBA。

例如我有以下数组:{ "a","b"} 我希望我的公式输出ab

原本我考虑使用,CONCATENATE({"a","b"})但结果却是a

答案1

这可以通过公式来实现,但是,对超过 1000 个字符串的列表进行分类似乎可能会超出 Excel 对字符串的限制,或者给出难以处理的结果。请注意。

  • 创建一个名为“Zone”或任何其他您想要的名称的隐藏工作表。
  • 如果您获取的命名范围称为“x”,则在 A 列中输入“Count”,然后在其下方的单元格中输入 =counta(x) '这将为我们提供数组的大小。
  • 将单元格命名为实际数字“Cnt”
  • 然后在 c 列中从 c3 开始输入“数据”,这是一个标题
  • 在 c4 输入 =index(x,1)
  • 在 c5 处并延伸到可能范围的大小 =+IF(ROW()>Cnt+3,"",C4&INDEX(x,ROW()-3))

  • 在 d2 输入“Answer”并在 d3 输入 =+OFFSET($C$3,Cnt,0)

  • 将 d3 单元格命名为 Ans,您可以在需要的地方使用它。可能的修改是添加“,”例如 c4&","&index(x,row()-3)),使用 iferror 而不是 if(row()>cnt+3 来屏蔽错误,如果已将公式复制到 2000 个单元格,则测试 if(cnt>2000,"Error namespace too large - Call John Doe", ""),如果低估了命名范围的大小,则会出现错误消息。

答案2

2020 年答案(实际上是 2016 年之后的答案)

=TEXTJOIN("",FALSE,{"a","b"})将返回“ab”

这是一个老问题,但在我的搜索结果中排名很高。自 2016 年以来,Excel 有一个TEXTJOIN()函数,它接受分隔符、忽略空白标志以及数组、范围、单元格列表、字符串列表等。

例如,以下将返回范围内唯一值的有序列表。

=TEXTJOIN(", ",FALSE,SORT(UNIQUE(A1:A100)))

相关内容