Формула Google Sheets, сгенерированная скриптом GAS, выдает ошибку, даже если она правильная - PullRequest
0 голосов
/ 25 сентября 2019

Я создал скрипт в GAS, который извлекает идентификатор из загроможденной записи, а затем вводит его в формулу, которая будет искать его в листе данных - однако формулы, созданные скриптом, приводят к тому, что лист Google выбрасываетошибка, как если бы формула была неверной.Однако, используя окно «Поиск и замена» в Google Sheets, чтобы заменить символ на тот же самый точный символ (например, начало = to =), можно заставить его принять формулу и выполнить ее правильно - вручную удалив символ, нажав Enterи положить его обратно тоже работает.

Я пытался внедрить Find and Replace в GAS, чтобы сделать его автоматическим - и хотя скрипт работает правильно и заменяет данный символ, он не выполняет то, что делает руководство Find and Replace, - формулы, которые уже исправлены, остаютсяработают, а те, которые являются «неправильными», по-прежнему ошибочны.

for(var i = 0; i < range.getNumRows(); i++ ){
    //Processing to extract the id
    valsO[i][0]="=IF(ISERROR(VLOOKUP(\""+id+"*\";'Data'!B2:B$8400;1;FALSE));\"NONE\";VLOOKUP(\""+id+"*\";'Data'!B2:B$8400;1;FALSE))";
    }
range=sheet.getRange(range.getRowIndex(), resultColumn, range.getNumRows());
range.setFormulas(valsO);

РЕДАКТИРОВАТЬ: исправлено с .setValues до .setFormulas и с IFERROR до ISERROR - однако ошибка синтаксического анализа формулысохраняется, несмотря на то, что работает, если он набран или скопирован.

1 Ответ

2 голосов
/ 26 сентября 2019

При создании анонимной версии электронной таблицы, которую все могли увидеть и проверить, я случайно наткнулся на правильный ответ.

Моя проблема заключалась в том, что я ожидал, что Google Sheets будет анализировать формулы, сгенерированные из скрипта, не на английском языке, как это обычно происходит при вводе прямо на лист.После того как я фактически перевел всю формулу, включая логическое значение FALSE, на английский, скрипт начал работать правильно.

Спасибо за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...