Arrayformula 检查列是不是包含文本并拉出旁边的数字。谷歌表格
Posted
技术标签:
【中文标题】Arrayformula 检查列是不是包含文本并拉出旁边的数字。谷歌表格【英文标题】:Arrayformula to check if column contains text and pull the number next to it. Google SheetsArrayformula 检查列是否包含文本并拉出旁边的数字。谷歌表格 【发布时间】:2020-04-16 05:30:48 【问题描述】:在这方面迫切需要一些帮助! 不知道如何命名这个问题...
样品表 - CLICK ME! :)
在SupportingSheet!H1
我有以下公式:
=ArrayFormula(if(G1:G<>"", IF(DASHBOARD!N2<>"", G1:G/DASHBOARD!$P$2-filter(DASHBOARD!O1:O100,REGEXMATCH(DASHBOARD!N1:N100,E1:E100)),G1:G/(DASHBOARD!$M$3)),))
我纠结的部分是:
G1:G/DASHBOARD!$P$2-filter(DASHBOARD!O1:O100,REGEXMATCH(DASHBOARD!N1:N100,E1:E100))
它需要将两个数字相除,然后再减去另一个数字。我似乎无法让这个公式得出正确的数字。
它需要检查E1:E100
中的文字是否存在于DASHBOARD!N1:N100
中,如果存在,则从DASHBOARD!O1:O100
中提取号码。
例如SupportingSheet!E1
中的文本可以在DASHBOARD!N2
中找到,因此它需要从DASHBOARD!O2
中提取号码。
列SupportingSheet!J
具有公式需要生成的实际最终结果。
Regexmatch 看起来不像是一个 Arrayformula,我不知道该怎么做。
请注意,SupportingSheet!E1:E
中的文本并不总是相同的。通常它最后会有一个随机数的“空间”(长话短说......)。这就是为什么 Regexmatch 是一个完美的选择,直到我意识到它不起作用。
如果需要进一步说明,请告诉我。
下面是末尾随机空格(不可打印字符)的图像。
【问题讨论】:
【参考方案1】:使用:
=ARRAYFORMULA(IF(G1:G="",,IF(DASHBOARD!N2<>"",
IFNA(G1:G/DASHBOARD!$P$2-VLOOKUP(E1:E1000, DASHBOARD!N1:O100, 2, 0),
G1:G/DASHBOARD!$M$3))))
【讨论】:
这个公式很好用,但是,还有另一个问题使这个公式有点不可用。 SupportingSheet!E 列中的文本末尾通常有随机数量的不可打印字符(即空格)。因此,查找并不总是匹配列 SupportingSheet!E 和 DASHBOARD!N 中的文本。有没有办法解决这个问题。我无法更改源数据以删除那些不可打印的字符。我添加了一张图片来说明我的意思。 @player0 试试:=ARRAYFORMULA(IF(G1:G="",,IF(DASHBOARD!N2<>"", IFNA(G1:G/DASHBOARD!$P$2-VLOOKUP(TRIM(E1:E1000), TRIM(DASHBOARD!N1:N100), DASHBOARD!O1:O100, 2, 0), G1:G/DASHBOARD!$M$3))))
以上是关于Arrayformula 检查列是不是包含文本并拉出旁边的数字。谷歌表格的主要内容,如果未能解决你的问题,请参考以下文章
在 Google 表格的过滤视图中排序时,ArrayFormula 列消失
在 Google 表格中使用 ARRAYFORMULA 有条件地基于辅助列数据进行 CONCAT
ArrayFormula 仅在整个列中迭代第一个值,需要所有符合条件的值