谷歌电子表格-hlookup使用arrayformula应用于新行

时间:2019-01-22 11:38:22

标签: google-sheets

我有一个电子表格,可以从外部源自动向其中添加新行。我正在使用hlookup查找价格在行(哪一列)的位置(所有价格均包含€符号)

=IF(B2="","",HLOOKUP("*"&"€"&"*",offers!K2:2,1,0))

我可以通过向下拖动公式来复制该公式,但是这种方式不会自动应用于新行。这就是为什么我尝试使用ARRAYFORMULA,但无法使其正常工作的原因。

如何结合使用ARRAYFORMULA和HLOOKUP(或替代方法),以便将公式也应用于所有新行?

spreadsheet simplified example

1 个答案:

答案 0 :(得分:0)

将此内容粘贴到A1中:

={""; ARRAYFORMULA(TRANSPOSE(SPLIT(CONCATENATE(IF(LEN(C2:C), 
  IF(REGEXMATCH(D2:G, "€"), D2:G&";", ), )), ";", 1, 1)))}

1

替代项:

=ARRAYFORMULA(IF(D2:D="", , VLOOKUP(ROW(A2:A), {ROW(A2:A), C2:H}, MMULT(COLUMN(B:G)*
 ISNUMBER(FIND("€", C2:H)), TRANSPOSE(COLUMN(C:H)^0)), 0)))

=ARRAYFORMULA(IF(D2:D="", , MMULT(IFERROR(1*SUBSTITUTE(SUBSTITUTE(C2:H, "€", ""),
 ",", "."), 0)*ISNUMBER(FIND("€", C2:H)), TRANSPOSE(COLUMN(C:H)^0))))