Arrayformula 中的 Arrayformula

Arrayformula from Arrayformula

我被公式卡住了。我有一个带有勾选框的 sheet 来查看产品(通过制造代码唯一)是否与机器兼容。

这些产品代码是从列中第一行 (C1:BD1) 的不同选项卡转置的 B2:B 是来自不同 sheet 的具有机器名称的导入范围。

所以我使用数据验证从 C2:BD 生成复选框。到目前为止,一切都很好。 这一切都很好。

接下来,如果值为真,我需要该产品的机器名称或名称。

=ARRAYFORMULA(textjoin(",",true,((IF(((COUNTIF(True, INDIRECT(CONCATENATE("'Toestellen database'!",(substitute(address(1,(MATCH((HLOOKUP(A5,'Toestellen database'!$C:$BD,1,false)),'Toestellen database'!:,0)),4),"1","")),":",(substitute(address(1,(MATCH((HLOOKUP(A5,'Toestellen database'!$C:$BD,1,false)),'Toestellen database'!:,0)),4),"1","")))))))=1,'Toestellen database'!$B:B,"")))))

所以我在 compatibel met 选项卡中使用了这个公式(B 列),其中我在 A 列中有所有产品代码,以查看Toestellen 数据库 选项卡。

如我所愿。如果您打开或关闭某些内容,它会出现在 compatibel met 选项卡中。

如果我将此代码复制到 B 列中,A5 将更改,以便查看下一个产品代码并查看复选框是对还是错。这是我坚持的部分。我想在 B 列中创建一个 ARRAYFORMULA,以便上面的代码适用于 A5:A.

中的所有产品代码

无法正常工作。我错过了一些东西,我不知道是什么。有人能指出我正确的方向吗?

example

您共享的 sheet 上名为 MK.Help 的新标签在单元格 B5 中有此公式。我认为您的旧公式对于尝试制作数组公式不是很有用。

=ARRAYFORMULA(IFERROR(VLOOKUP(A5:A,SPLIT(TRANSPOSE(SUBSTITUTE(TRIM(QUERY({'Toestellen database'!C1:1&"|";IF('Toestellen database'!C2:10000,'Toestellen database'!B2:B&CHAR(10),)},,9^9)),CHAR(10),",")),"| ",0),2,0)))

这个公式使用了我(和许多其他人)所说的 QUERY() “smush”。您正在利用查询函数中第三个通常未使用的参数来连接一个范围的所有“header”行,但您指示它您有 9 的 9 次方 (9^9) header 行。这只是写“无限”的简单方法。