Получить номер строки для формулы Google Таблиц - PullRequest
0 голосов
/ 28 мая 2020

Мне нужна помощь в том, как получить номер строки в Google Таблицах, который будет работать с указанными ниже функциями.

Я собрал (возможно, плохо?) Две инструкции в Google Таблицах, которые работают вместе, чтобы вытащить последний раздел строки в переменной строке данных с ARRAYFORMULA, REGEXREPLACE, REGEXEXTRACT в одной ячейке, которая предоставляет данные для IFERROR, REGEXEXTRACT, CONCANTENATE в другой ячейка.

Они предназначены для вставки в таблицу Google с помощью триггера автоматизации (Zapier) и предназначены для вызова и извлечения кода отслеживания для товаров с различных платформ (eBay, Etsy, Woocommerce, прямой ввод и т. Д. c.), Поэтому процесс должен быть динамическим c.

Мне удалось заставить работать первый набор, используя следующее, вставленное в Google Таблицы Zapier.

=arrayformula(if(istext(P=P:ROW),{arrayformula(REGEXREPLACE(P=P:ROW,">.*","")),arrayformula(regexextract(P=P:ROW,"^.*>(.*)>.*$")),arrayformula(REGEXREPLACE(P=P:ROW,"^.*>",""))},))

Это может вызывать ROW и обновлять каждую новую строку, которая записывается в Google Sheets с каждым новым Zap. номера ячеек жестко запрограммированы, как:

=IFERROR(REGEXEXTRACT(CONCATENATE(P2,IF(T2="","","/"),T2),"[^\/]+$"),"")

Если это записано в текущем формате, процесс автоматизации завершается ошибкой, поскольку каждая новая строка, добавляемая Zapier в Google Sheets, указывает Google Sheets искать данные в строке 2 ( согласно жестко запрограммированному 2).

Это действительно необходимо для получения данных в «той же строке», в которой они записаны.

Копию листа можно найти здесь: Google Таблицы

  • Col P - Исходный код, загружаемый с различных платформ электронной коммерции
  • Col Q - Первая инструкция формулы, вставленная здесь Zapier для запрограммированного Zap для создания новой строки
  • Col R - намеренно пустой
  • Col S - намеренно пустой
  • Col T - намеренно пустой
  • Col U - вывод отслеживания доставки, вставленный сюда Zapier для запрограммированного Zap как части тот же триггер для записи в столбец P, как указано выше

Если есть лучший способ справиться с этим, я был бы рад услышать предложения. Я мог бы использовать Java как Zap для запуска процесса, если код способен делать то же самое.

1 Ответ

0 голосов
/ 28 мая 2020

Вы можете использовать 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())),"[^\/]+$"),"")
...