【问题标题】:Why does my Array Formula only return one value?为什么我的数组公式只返回一个值?
【发布时间】:2014-04-03 14:24:43
【问题描述】:

所以我有这个数据。

|Col M | Col N | Col O | Col P | Col Q | Col R| |<formula>| A | B | C | D | E |

我正在尝试使用{=$N$6:$R$6&amp;", "} 将公式放入M 列,但它只返回A, 而不是A, B, C, D, E。为什么会这样?

【问题讨论】:

  • @deanosaur,这个问题就对了​​...{=$N$6:$R$6&amp;", "}
  • 这不是连接的方式..你应该使用&amp;或者你可以使用concatenate excel函数。
  • 是的,如果他将每个单独的值一个接一个地放入,那将起作用。但是CONCATENATE 不会采用用户正在寻找的多单元格范围或数组参数。

标签: arrays excel formula


【解决方案1】:

任何原生 Excel 公式(连接数组)都无法实现您想要完成的任务。您使用的数组公式只是返回第一个结果,这就是它真正能做的。您必须编写一个自定义函数来连接数组。类似的东西

Option Explicit
Public Function ARRCONCAT(ByVal rng As Range, Optional ByVal sep As String = ", ") As String

If rng Is Nothing Then
    ARRCONCAT = xlErrNull
    Exit Function
End If

Dim c       As Range
Dim result  As String

For Each c In rng
    If result = "" Then
        result = c.Value
    Else: result = result + sep + c.Value
    End If
Next c

ARRCONCAT = result

End Function

将该代码放入工作簿中的新模块中,然后像这样调用它:

=ARRCONCAT($N$1:$R$1)

或

=ARRCONCAT($N$1:$R$1, ";")

【讨论】:

  • 我现在几乎在使用 UDF 来创建它,但我认为会有一种实际的方法来创建它,这一切都在以后。大声笑
  • 是的,很遗憾没有,UDF 是完成此任务的唯一方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多