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

sgp*_*667 5 worksheet-function microsoft-excel microsoft-excel-2010

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

我知道如何使用 VBA 完成此操作,但我必须共享我的工作簿,而且我必须假设其他人将无法启用我编写的 VBA。

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

原来我正在考虑使用,CONCATENATE({"a","b"})但这导致a

小智 2

这可以通过公式来完成,但是,对超过 1000 个字符串的列表进行分类似乎可能会超出 excel 对字符串的限制或给出难以处理的结果。抛开警告不谈。

  • 创建一个名为“区域”或任何您想要的其他名称的隐藏工作表。
  • 如果您获得的命名范围称为“x”,则在 A 列中输入“Count”,然后在其下方的单元格中输入 =counta(x) '这将为我们提供数组的大小。
  • 用实际数字“Cnt”命名单元格
  • 然后在从 c3 开始的 c 列中输入“Data”,这是一个标题
  • 在 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,"错误命名范围太大 - Call John Doe", "") 如果低估了命名范围的大小,则会导致出现错误消息。