【问题标题】:Create a list depending on the checkboxes根据复选框创建列表
【发布时间】:2021-02-24 16:43:34
【问题描述】:

我有一个行业和子行业的列表,以及几家公司及其行业、行业和子行业的列表。

到目前为止,我已根据一个参数(在本例中为子行业)进行过滤。这是公式:

=FILTER ( J2:M12 ; M2:M12 = filter ( H2:H8 ; G2:G8 = TRUE() ) )

我想根据复选框是真还是假来过滤公司列表。如果选中了多个复选框,则在列表中显示这些公司,仅显示唯一值。

如果可能,请不要使用查询功能,因为我想维护未来的超链接。

例如,如果我只选择能源的复选框,它将只显示所有能源公司。如果我只选择 Oil Gas & Consumable Fuels 的复选框,它将只显示所有 Oil Gas & Consumable Fuels 公司。

但如果我同时选择油气和消耗性燃料以及能源设备和服务,它将显示这些公司。或者选择不同的子行业,但目的是显示所选组中的公司。

提前致谢,如果有不清楚的地方请告诉我。

示例的电子表格:https://docs.google.com/spreadsheets/d/1c9cp0J4m1M-HbnDr_TliknuPSXHgdqkuuzAvzK75zC8/edit?usp=sharing

【问题讨论】:

    标签: google-sheets checkbox google-sheets-formula formula


    【解决方案1】:

    我不建议您将过滤复选框和过滤结果与原始数据放在同一页面上。它会让您陷入困境,难以将新项目添加到原始数据列表并需要更改公式。当您将新项目添加到完整列表中时,它还会使您的结果越来越低,这对您来说并不方便。

    我在您的示例电子表格中添加了两张新工作表,两个标签均以亮绿色突出显示。这两张表一起工作。他们根本没有参考您的原始工作表。

    “待办事项”表将保留您的完整原始数据列表。 “过滤器”表是您选择选项并查看过滤结果的地方。

    一个公式在Filtrar!J2:

    =ArrayFormula(IFERROR(FILTER(Todos!A2:D;Todos!A2:A<>"";VLOOKUP(Todos!B2:B;{B2:B\A2:A};2;FALSE);VLOOKUP(Todos!C2:C;{E2:E\D2:D};2;FALSE);VLOOKUP(Todos!D2:D;{H2:H\G2:G};2;FALSE))))

    此公式过滤完整的“待办事项”列表,其中一个条件排除空白行,后跟三个VLOOKUP 条件,每个条件基本相同,即在过滤器列表中查找特定条件并返回是否是TRUE。 (您在公式中看不到 TRUE 一词,因为每个 VLOOKUP 的唯一可能结果是 TRUEFALSE,因为这些是复选框的唯一可能性。)

    如您所见,我还在“过滤器”工作表中添加了一些格式。简单、清晰的格式可以使数据更易于阅读。

    您也不需要复选框标签列中的冗余,所以我删除了这些。

    【讨论】:

      【解决方案2】:

      我尝试复制您当前的公式并在 FILTER 中添加以包含多个条件。请看下面的公式:

      =FILTER(J2:M12;
      IF(COUNTIF(A2:A8; TRUE)>0;MATCH(K2:K12;FILTER(B2:B8;A2:A8);0);N(K2:K12)<>"");
      IF(COUNTIF(D2:D8; TRUE)>0;MATCH(L2:L12;FILTER(E2:E8;D2:D8);0);N(L2:L12)<>"");
      IF(COUNTIF(G2:G8; TRUE)>0;MATCH(M2:M12;FILTER(H2:H8;G2:G8);0);N(M2:M12)<>""))
      

      默认情况下,如果可用复选框中未选中任何项目,这将显示表中的所有数据。如果这能解决您的问题,请告诉我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-16
        • 2021-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-12
        相关资源
        最近更新 更多