我正试图根据条件和单元格值将某些行值从Sheet1复制到Sheet2,其中某些行仅在[Qualification] = 'Qualified'
时复制,如果[No of positions] = 1
,则复制一次值,如果[No of positions] = 2
,则复制两次值。
下面是一个例子。
第1张
领导类型 | |||||||
---|---|---|---|---|---|---|---|
外部 | 非洲 | 基地 | 外部 |
自定义函数最好通过公式参数获取其值。它们返回的值被放置在公式单元格中,并从那里向下和向右。
你可以将你的函数转换为一个合适的自定义函数,如下所示:
/**
* Filters rows by matching the sixth column against criterion, and repeats
* each matching row as many times as specified in the fifth column.
*
* @param {Sheet1!A2:F} values The rows to filter and repeat.
* @param {"Qualified"} criterion The value to match to the sixth column in values.
* @return {Object[][]} The processed values.
* @customfunction
*/
function RepeatMatching(values, criterion = 'Qualified') {
return values.flatMap(([, b, c, , e, f]) =>
e > 0 && f == criterion ? [...Array(e)].fill([b, c, f]) : []
);
}
要测试该功能,请选择插入>表,并将此公式放入新表的单元格A2
中:
=RepeatMatching(Sheet1!A1:F, "Qualified")