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

#javascript #google-apps-script #google-sheets

#javascript #google-apps-script #google-sheets

Вопрос:

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

 function putData()
{
    return "foo"
}
 

Если я сейчас вызову эту функцию в ячейке, она отобразит «foo»:

    A           B           C           D
1  =putData()
 

Результаты

    A           B           C           D
1  foo
 

Но что мне нужно, так это возвращать значения и в 3 ячейках справа:

    A           B           C           D
1  foo        bar         baz         bax
 

Теперь я мог создать 4 функции и вызывать каждую из них в отдельной ячейке.
Но я хотел бы заполнить 4 ячейки одним вызовом функции:

 function putData()
{
    return "foo,bar,baz,bax"
}
 

Но это, очевидно, не работает. Это просто строка A1 . Итак, мой вопрос: как мне нужно отформатировать return , чтобы заполнить ячейку, в которой вызывается функция, плюс 3 соседние ячейки справа?

Ответ №1:

Решение 1:

Вы можете вернуть массив из массива строк:

 function putData()
{
    return [["foo","bar","baz","bax"]];
}
 

а затем напрямую использовать =putData() :

введите описание изображения здесь


Решение 2:

Вы можете вернуть массив строк:

 function putData()
{
    return ["foo","bar","baz","bax"];
}
 

и тогда вы можете использовать: =Transpose(putData()) чтобы получить их в ряд:

введите описание изображения здесь


Решение 3:

или вы можете использовать свое текущее решение:

 function putData()
{
    return "foo,bar,baz,bax";
}
 

а затем разделить значения =split(Transpose(putData()),",") :

введите описание изображения здесь