如何在 ARRAYFORMULA 中为一系列单元格使用自定义函数?
How to use a custom function in an ARRAYFORMULA for a range of cells?
我有一个 Google 表单正在填充 Google Sheet。由于 sheet 中有自定义公式来操作从表单填充的数据,我使用 ARRAYFORMULA 应用于列中的所有行。
我有一个自定义函数来编码包含 html
的行
function base64EncodeWebSafe(input) {
try {
// Try and fetch the specified url.
return Utilities.base64EncodeWebSafe(input);
} catch (e) {
Utilities.sleep(1000);
return Utilities.base64EncodeWebSafe(input);
}
}
当我在 ARRAYFORMULA(base64EncodeWebSafe(T2:T)) 中调用此函数时
我收到一条错误消息"Cannot convert Array to (class)[]."
我期望发生的是将编码函数应用到范围 T2:T
这在Custom Functions guide中有描述。我已经调整了指南中使用的实现,但您可以做其他事情。基本上,如果使用 ARRAYFORMULA,则需要将输入视为二维数组。
function base64EncodeWebSafe(input) {
if (input.map) { // Test whether input is an array.
return input.map(base64EncodeWebSafe)
} else {
try {
return Utilities.base64EncodeWebSafe(input);
} catch (e) {
Utilities.sleep(1000);
return Utilities.base64EncodeWebSafe(input);
}
}
}
我有一个 Google 表单正在填充 Google Sheet。由于 sheet 中有自定义公式来操作从表单填充的数据,我使用 ARRAYFORMULA 应用于列中的所有行。
我有一个自定义函数来编码包含 html
的行function base64EncodeWebSafe(input) {
try {
// Try and fetch the specified url.
return Utilities.base64EncodeWebSafe(input);
} catch (e) {
Utilities.sleep(1000);
return Utilities.base64EncodeWebSafe(input);
}
}
当我在 ARRAYFORMULA(base64EncodeWebSafe(T2:T)) 中调用此函数时
我收到一条错误消息"Cannot convert Array to (class)[]."
我期望发生的是将编码函数应用到范围 T2:T
这在Custom Functions guide中有描述。我已经调整了指南中使用的实现,但您可以做其他事情。基本上,如果使用 ARRAYFORMULA,则需要将输入视为二维数组。
function base64EncodeWebSafe(input) {
if (input.map) { // Test whether input is an array.
return input.map(base64EncodeWebSafe)
} else {
try {
return Utilities.base64EncodeWebSafe(input);
} catch (e) {
Utilities.sleep(1000);
return Utilities.base64EncodeWebSafe(input);
}
}
}