Google表格中的ARRAYFORMULA在Excel中无法工作

wpx232ag  于 2023-05-01  发布在  Go
关注(0)|答案(1)|浏览(144)

我在Google表格中有一个带有正则表达式匹配的ARRAYFORMULA,我需要将其转换为Excel。
工作表公式为:
=ARRAYFORMULA(IF(regexmatch(E2:E,"Call"),100*(I2:I*D2:D),""))
但我在Excel里调试不了。
该公式检查列E以查看第x行的单元格是否包含文本“call”。如果是,则将列(I)单元格中的值乘以列(D)单元格中的值。

编辑

L2具有下式:=IF(ISNUMBER(FIND("Call",E2:E10)),100*D2:D10*I2:I10,"")
也试过这个:=IF(E2:E8="Call",100*L3D2:D8*I2:I8,"")
两者都返回溢出错误,我不知道我会有多少行,所以公式无论如何都不起作用。

qaxu7uf2

qaxu7uf21#

Fn 1- Regex等效*(填充,区分大小写过滤器)*

=IF(ISNUMBER(FIND("Call",B2:B8)),100*D2:D8*E2:E8,"")

这为Regex函数提供了以下功能:
1.案例保存(i.即"A" <> "a"等。)
1.允许填充(i.即“12-呼叫”、“呼叫xyz”等。也将匹配)

版本:请参阅here示例文件(根据下面的屏幕截图,它显然是“工作”的-注意任何“溢出”错误都是由于函数下面的某些东西造成的-仅在单个单元格中输入函数-其他单元格将自动填充-这是一个数组函数)-如果您没有使用Excel 365,则使用此函数,并将其包含在表中:

=IF(ISNUMBER(FIND("Call",B2)),100*C2*D2,"")

很可能您使用的是365 Office兼容版本的Excel(因为旧版本没有“溢出!“功能-在这种情况下,你可以简单地输入以下功能在一个单一的单元格,并按回车!☺

=IF(ISNUMBER(FIND("Call",B2:B7)),100*C2:C7*D2:D7,"")

我的解决方案的其余部分(实际上与上面的相同,减去表项选项)现在恢复:

Fn 2- Alternative****FYI(严格相等)

虽然本Q的范围不包括变化-为了感兴趣,我提供了1个简单的示例。这与上面的函数不同,因为它增加了“严格相等”的限制(即:即没有“填充”)。..

=IF(B2:B8="Call",100*D2:D8*E2:E8,"")

最后评论

  • RE:此函数的Sheets和Microsoft Excel版本之间的等效性。.*

我相信范围E2:EI2:I是动态的(我可能搞错了),但如果不是,这里有几种在Excel中实现相同的替代方法:

=LET(x_, MAX(FILTER(SEQUENCE(ROWS(E:E)),--(E:E<>"")))-2, E2:OFFSET(E2,x_,0))

  • 这将获取从E2到该列中最后一个非空白单元格的动态范围
  • 一个常见的流行替代方案是更简单的方法:E2:offset(E2, counta(E2:E100) -1,0)
  • 虽然它比较简单,但很容易出现数据中的空白单元格
  • 也就是说,前者(见截图)需要与Office365兼容的Excel

如果动态范围是重要的-您也可以使用Excel中的表格)。e.导航到:* (文件|选择|公式|'在公式中使用表名(如果需要)*

相关问题