Проведя небольшое исследование, я обнаружил, что это невозможно сделать, если просто щелкнуть ячейку. Чтобы бороться с этим, я решил передать второй аргумент в качестве ячейки, которая запускает триггер onEdit , чтобы изменить результат.
Вам необходимо добавить триггер к этой пользовательской функции, чтобы она работала должным образом.
Чтобы использовать это, просто введите =RANDOMITEM(cell_to_edit, beginning_cell:ending_cell)
в текстовую область функции или саму ячейку.
Пример: =RANDOMITEM(A1, B1:B10)
будет использовать A1 в качестве ячейки триггера, чтобы при редактировании он выбирал случайный элемент из ячейки B1-B10
/**
* Picks a random value from a range of cells.
*
* @param {number} editCell The cell which will be used as the trigger.
* @param {number} itemRange The cells to be picked from.
* @return The random value from the range of cells.
* @customfunction
*/
function RANDOMITEM(editCell,itemRange) {
var itemArray = [];
for (var i = 0; i < itemRange.length; i++) {
itemArray.push(itemRange[i]);
};
var result = itemArray[Math.floor(Math.random()*itemArray.length)];
return result;
}