Google Sheets - setFormulaR1C1 (формула), похоже, не работает для формулы VLOOKUP - PullRequest
0 голосов
/ 18 января 2019

Я надеюсь найти способ решить эту проблему Formula parsing error без необходимости вручную что-то менять каждый раз, когда мне нужно запустить скрипт.

Я надеялся, что Google Sheets - setFormulaR1C1 (формула), похоже, не сработает разрешит мою ситуацию, но добавление точек с запятой не поможет.

Я запускаю скрипт, который добавляет следующую формулу в ячейки столбца, в который был добавлен лист:

range.setFormulaR1C1('=VLOOKUP((INDIRECT("R[0]C[-28]";false)-INDIRECT("R[0]C[-29]";false));Moon!$B$19:$C$68;2;true)');`

В результате получается ERROR# с сообщением Formula parse error.

Однако нажатие на формулу в поле ввода приводит к отображению правильного ожидаемого значения над формулой в левой части поля редактирования.

Я могу «исправить» проблему вручную, добавив в формулу открывающую и закрывающую скобки. (Затем я могу удалить те же скобки, и формула по-прежнему работает без ошибки синтаксического анализа.) Затем я могу скопировать формулу в строки ниже, и она отлично работает. Если я попытаюсь скопировать формулу перед добавлением (и удалением) скобок, она по-прежнему не будет выполнена.

Экспонаты:

  1. Отображение ОШИБКИ # в столбце AN.

  1. Показывает разрешение «Ошибка» до правильного ожидаемого значения «Полнолуние» при нажатии на формулу в поле редактирования.

]

  1. Показывает сообщение об ошибке рядом с ячейкой.

]

  1. Показывает формулу, измененную путем добавления '(' в начале и ')' в конце формулы.

  1. Показывает, что ошибка анализа устранена, и в ячейке теперь отображается правильное ожидаемое значение, Full Moon.

  1. Показывает, что я могу удалить открывающие и закрывающие скобки, которые я добавил, и формула по-прежнему работает без ошибки синтаксического анализа.

  1. Показывает, что ошибка синтаксического анализа все еще исчезла, и появляется ожидаемое значение.

  1. Показывает, что копирование формулы (которая теперь идентична по внешнему виду исходной записи, предоставленной сценарием) в другие строки приводит к ожидаемым значениям без ошибок синтаксического анализа.

1 Ответ

0 голосов
/ 18 января 2019

Поскольку вы вставляете формулу, которая использует нотацию R1C1 в качестве текстового аргумента для параметра INDIRECT и нотацию A1 в качестве аргумента другой функции, вы должны использовать setFormula вместо setFormulaR1C1.

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