Excel 数组公式结果连接到单个单元格中

Excel 数组公式结果连接到单个单元格中,excel,user-defined-functions,formula,Excel,User Defined Functions,Formula,是否可以从数组公式中获取返回值并将其连接到单个单元格中?例如,我有一个简单的电子表格,其中包含项目任务的行,如下所示: Task # Description Blocked on Blocking ----------------------------------------------- 1 Task 1 2 2 Task 2 $formula 3

是否可以从数组公式中获取返回值并将其连接到单个单元格中?例如,我有一个简单的电子表格,其中包含项目任务的行,如下所示:

Task #    Description    Blocked on    Blocking
-----------------------------------------------
1         Task 1         2             
2         Task 2                       $formula
3         Task 3         2             
我希望D3单元格中的公式返回“1,3”(在Blocked On单元格中输入多个值也很好)。我现在用下面的公式得到它返回“1”:

=(INDEX($A2:$A999,MATCH(A3,$C2:$C999,0)))

您要查找的公式是(在d3中):=IF($C$2:$C$999=$A4;$A$2:$A$999;“”)+ctrl+shift+enter

请确保将其作为数组输入

(注意:您可能还需要将更改为,具体取决于您的区域设置)

这将返回与当前Ai匹配的C中if数据的内容。您现在只能看到一个结果,因为结果是数组,但如果使用Transpose()并选择同一行中的多个单元格,然后使用F2,然后按住ctrl+shift+enter键,您将看到一行中的所有结果! 例如:选择D3:K3,按F2,写公式:=转置(如果($C$2:$C$999=$A4;$A$2:$A$999;“”),按ctrl+shift+enter。。。 (同样,您可能需要写:=转置(如果($C$2:$C$999=$A4,$A$2:$A$999,”)))

但是您必须在右侧有许多列,因为空结果仍然占用列! 即使空字符串被处理为不占用任何列,仍然存在未知结果列的问题。因此,我建议使用VBA函数(我不久前编写的函数)将有效结果连接到一个单元格中(使用您喜欢的任何分隔符)

D3中的最终建议公式:=MyConCat(“-”IF($C$2:$C$999=$A2;$A$2:$A$999;”)+ctrl+shift+enter

和MyConCat的代码(放置在VBA代码区的模块中):


在D3单元中试试这个。按数组公式Ctrl+Shift+Enter输入

=IFERROR(LEFT(SUBSTITUTE(CONCAT(IF(A3=C2:C4,A2:A4)&"-"),"FALSE-",""),LEN(SUBSTITUTE(CONCAT(IF(A3=C2:C4,A2:A4)&"-"),"FALSE-",""))-1),"")

简单有效!不错。想给你一些分数,但我需要一些声誉(好或坏)在这个网站上。两个更正:>D3中的最终建议公式:>=MyConCat(“-”如果($C$2:$C$999=$A2;$A$2:$A$999;”)+ctrl+shift+enter不知道为什么分号(;)应该是逗号:=MyConCat(“-”),如果($C$2:$C$999=$A2,$A$2:$A$999;”)ctrl+shift+enter我在你的IF语句中到处都能看到这些分号。哎哟否则就是一流的!非常喜欢撇号。@St4n1ey使用分号和逗号是一种区域设置。发布的公式没有问题。
=IFERROR(LEFT(SUBSTITUTE(CONCAT(IF(A3=C2:C4,A2:A4)&"-"),"FALSE-",""),LEN(SUBSTITUTE(CONCAT(IF(A3=C2:C4,A2:A4)&"-"),"FALSE-",""))-1),"")