我正在寻求一些帮助,以了解如何在Google Sheets中检索行号,并与下面的函数一起工作。
我已经把Google Sheets中的两个指令放在一起(可能很糟糕?),这两个指令一起工作,以拉出变量数据串中的字符串的最后一节,并以 ARRAYFORMULA
, REGEXREPLACE
, REGEXEXTRACT
在一个单元格中,为一个 IFERROR
, REGEXEXTRACT
, CONCANTENATE
在另一个单元格中。
这些旨在通过自动化触发器(Zapier)插入到Google Sheet中,旨在调用和提取来自不同平台(eBay、Etsy、Woocommerce、直接输入等)的项目的跟踪代码,所以这个过程需要是动态的。
我已经能够使用下面的Zapier粘贴到Google Sheets中的第一套来工作。
=arrayformula(if(istext(P=P:ROW),{arrayformula(REGEXREPLACE(P=P:ROW,">.*","")),arrayformula(regexextract(P=P:ROW,"^.*>(.*)>.*$")),arrayformula(REGEXREPLACE(P=P:ROW,"^.*>",""))},))
这能够调用ROW,并随着每一个新的Zap在Google Sheets中写入的新行而更新。
面临的挑战是如何让下一步自动工作,目前的公式是用硬编码的单元格编号来写的,因为。
=IFERROR(REGEXEXTRACT(CONCATENATE(P2,IF(T2="","","/"),T2),"[^\/]+$"),"")
以目前的格式编写,自动化过程失败了,因为Zapier向Google Sheets添加的每一行都会指示Google Sheets在第2行中寻找数据(根据硬编码)。2
).
这确实需要检索它所写的 "同一行 "中的数据。
该表的副本可以在这里找到。谷歌表
如果有更好的处理方法,我很乐意听到建议。如果代码能够做同样的事情,我可以使用Java作为Zap来运行这个过程。
你可以使用 Row()
来获取公式所在的行,以及 INDEX
来引用列中的一个单元格。 所以把每一个 P2
到 index(P:P,row())
你的公式变成了
=arrayformula(if(istext(index(P:P,row())),{arrayformula(REGEXREPLACE(index(P:P,row()),">.*","")),arrayformula(regexextract(index(P:P,row()),"^.*>(.*)>.*$")),arrayformula(REGEXREPLACE(index(P:P,row()),"^.*>",""))},))
和
=IFERROR(REGEXEXTRACT(CONCATENATE(index(P:P,row()),IF(index(T:T,row())="","","/"),index(T:T,row())),"[^\/]+$"),"")