0

我正在尝试使用从 PowerAutomate 传递的多个条件过滤下表。我想过滤“Product-1”、“Product-3”、“Product-5”的 Product列, “East”、“West”的 Location 列和“Black”、“White”的 Color 列。

我将三个变量从 Power-Automate 传递到 office 脚本作为product_Nameproduct_Locationproduct_Color。在哪里

产品名称 = “产品 1”、“产品 3”、“产品 5”

product_Location = “东”、“西”

product_Color="黑色", "白色"

我正在使用以下办公脚本来应用过滤器,但是不能应用过滤器,因为它仅将列过滤为“Product-1”、“Product-3”、“Product-5”而不是特定于行.

function main(workbook: ExcelScript.Workbook,
    product_Name?: string,
    product_Location?: string,
    product_Color?: string,
) {
    let table2 = workbook.getTable("Table2");
    // Apply checked items filter on table table2 column Product
    table2.getColumnByName("Product").getFilter().applyValuesFilter([product_Name]);

    // Apply checked items filter on table table2 column Location
    table2.getColumnByName("Location").getFilter().applyValuesFilter([product_Location]);

    // Apply checked items filter on table table2 column Color
    table2.getColumnByName("Color").getFilter().applyValuesFilter([product_Color]);
}

桌子:

产品 地点 颜色
产品-1 东方 黑色的
产品-2 西方 红色的
产品-3 蓝色的
产品-4 西方 蓝色的
产品-5 东方 黄色
产品-1 西方 白色的
产品-2 东方 黑色的
产品-3 西方 红色的
产品-4 蓝色的
产品-5 西方 蓝色的
产品-1 东方 黄色
产品-2 西方 白色的
产品-3 黑色的
产品-4 西方 红色的
产品-5 蓝色的
产品-1 西方 蓝色的
产品-2 东方 黄色
产品-3 西方 白色的

如何使用变量作为适当的过滤器?有人可以帮忙吗?

4

2 回答 2

0

假设您的数据在 AC 列中并且您的工作表名称是 Sheet1,

function main(workbook: ExcelScript.Workbook) {
    let sheet = workbook.getWorksheet("Sheet1");

    let table = sheet.getTable("Table2");
    table.getAutoFilter().apply("A1", 0, { filterOn: ExcelScript.FilterOn.values, values: ["Product-1", "Product-3", "Product-5"] });

    table.getAutoFilter().apply("B1", 1, { filterOn: ExcelScript.FilterOn.values, values: ["East", "West"] });

    table.getAutoFilter().apply("C1", 2, { filterOn: ExcelScript.FilterOn.values, values: ["Black", "White"] });
}
于 2021-08-18T10:09:30.570 回答
0

applyValuesFilter将字符串数组作为参数。最简单的方法是将参数更改为字符串数组 -

function main(workbook: ExcelScript.Workbook,
    product_Names?: string[],
    product_Locations?: string[],
    product_Colors?: string[],
) {
    let table2 = workbook.getTable("Table2");
    // Apply checked items filter on table table2 column Product
    table2.getColumnByName("Product").getFilter().applyValuesFilter(product_Names);

    // Apply checked items filter on table table2 column Location
    table2.getColumnByName("Location").getFilter().applyValuesFilter(product_Locations);

    // Apply checked items filter on table table2 column Color
    table2.getColumnByName("Color").getFilter().applyValuesFilter(product_Colors);
}

Power Automate 的值也必须更改为数组

产品名称= [ “产品 1”、“产品 3”、“产品 5” ]

product_Location = [ “东”,“西” ]

product_Color= [ “黑色”,“白色” ]

于 2021-09-01T04:23:57.277 回答