Я пытаюсь выполнить функцию «roman-number-to-decimal-number» в Google Spreadsheets. До сих пор мне удалось заставить его работать, используя код ниже:Функция «замена» Google Script с диапазоном
function rom2num(inputRange) {
inputRange = inputRange.replace(/\bi\b/gi,1); //convert 'I' to '1'
return inputRange;
}
Это отлично работает, когда вход только одна ячейка. Тем не менее, всякий раз, когда я пытаюсь ввести диапазон (A1: B2), я получаю сообщение об ошибке: «невозможно найти функцию замены в объекте».
Некоторые примеры того, что я хочу добиться:
Column A | Column with function
i, ii, iii | 1, 2, 3
Godfather II | Godfather 2
iv, v, vi | 4, 5, 6
Star Wars V | Star Wars 5
Я мог бы просто выбрать, чтобы повторить функцию ниже клеток, как это было предложено Crayon, однако, диапазон, который должен быть переформатирован может быть 50 строк , или это может быть 100 строк, и я предпочитаю не бросать в 50 дополнительных экземпляров функции, если они не будут использоваться. Я хочу, чтобы он был максимально автоматическим. :-)
Я знаю, что это возможно, чтобы получить информацию о диапазоне ячеек, и возвращение, что информация, содержащаяся в другом диапазоне ячеек, просто используя следующий код:
function copyRange(inputRange) {
return inputRange;
}
Так для ввода диапазон и выход того же диапазона не проблема. Проблема заключается в том, чтобы включить функцию replace. Мне удалось изменить информацию во всем диапазоне, используя функцию 'toString()'. И тогда я смог разделить вывод на несколько столбцов, используя «split» («,»), но я не хочу, чтобы он распространялся по столбцам, просто по строкам.
Так что, если я какой-то образом могу преобразовать диапазон/массив в строку, а затем обратно в диапазоне/массив ...
Можно ли добиться этого без вздутия коды слишком много? (Я новичок в сценариях и предпочитаю, чтобы мои сценарии были короткими, как мой пример выше.)
Прошу прощения, если я не понимаю. Я привык искать ответы на форумах, как это, но не задавать вопросы сам!
Спасибо!
РЕДАКТИРОВАТЬ: наконец-то понятые вещи были слишком сложными, поэтому я просто пошел с советом Crayons и использовал метод «перетаскивания». Меня спасло много шума. Спасибо за помощь!!
Итак, что * * в переменной 'inputRange', то, если это не строка? Добавьте тип (как указано в 'typeof inputRange') и содержимое этой переменной. Это вовсе не проблема с скриптом Google, просто простой JavaScript, но трудно помочь, не зная, что в этой переменной. :-) –
Привет! Спасибо за быстрый ответ. Я отредактировал сообщение, чтобы, надеюсь, принести больше ясности в ситуацию и ответить на ваш вопрос. Благодаря! – user2268171
Эй, сейчас слишком много деталей. :-) Действительно, вы делаете это слишком сложным. Давай начнем сначала. У вас есть функция. Он принимает входные данные и преобразует их в вывод. Что это такое? Какой результат должен генерировать этот вход? Дайте конкретные примеры для обоих, как много примеров, как это требуется, чтобы показать различные случаи, с которыми вы можете столкнуться, но не более того. Забудьте о API таблиц и обо всем остальном, все это просто отвлекает. Подойдите к минимальным конкретным требованиям для этой конкретной функции, а затем у вас есть что-то, что легко решить. –