【问题标题】:Google Sheets - How to Simplify this Repeating ComparisonGoogle 表格 - 如何简化这种重复比较
【发布时间】:2020-06-13 03:19:43
【问题描述】:

我找遍了,什么也没找到。我正在做的是在另一张表中使用排序/过滤功能显示一个表。为了您的观看乐趣,我已经简化了我的公式,如下所示:

=SORT(FILTER(A2:J23,
(C2:C23<>L2)+(D2:D23*M2),
(C2:C23<>L3)+(D2:D23*M3),
(C2:C23<>L4)+(D2:D23*M4),
(C2:C23<>L5)+(D2:D23*M5),
(C2:C23<>L6)+(D2:D23*M6),
(C2:C23<>L7)+(D2:D23*M7)),
A29, TRUE,
B29, FALSE,
C29, FALSE,
D29, FALSE,
E29, FALSE,
F29, FALSE,
G29, FALSE,
H29, FALSE,
I29, FALSE,
J29, FALSE)

目标很简单。我想简化它们,也许通过使用一个范围。它们是使用一个升序变量的完全相同的公式。


如果有帮助,这就是它正在做的事情:

(C2:C23L#) 检查 col C 是否等于 col L 中的“类型”。

(D2:D23*M#) M 列包含复选框(真/假)。将其乘以 col D 中的任意正数,得到数字数组与第一部分的 OR。

这些公式共同表示,“如果类型匹配,并且未选中按钮,则不显示行”。布尔逻辑是 A+B' 或 (A'B)'。

在排序部分,有一排复选框 A29:J29 (1/0, 2/0, 3/0, ...)。按下时,表格按该列排序,A-Z 列在 A 列,最大的第一个列 B-J。

编辑:我制作了一个模拟表以更好地说明正在发生的事情,并更新了代码以匹配此表。可以在这里找到:https://docs.google.com/spreadsheets/d/1cOre8sVOb3TE2OsaNC823UB18DAMO4pD4-mZqJtxu0k/edit?usp=sharing

【问题讨论】:

    标签: google-sheets-formula


    【解决方案1】:

    公式如下:

    =QUERY(
      A2:J23,
        "SELECT * "
      & "WHERE C is not null "
      & IF(COUNTIF(M29:M34, False) = 0, "", "AND NOT C MATCHES '" & JOIN("|", IFNA(FILTER(L29:L34, M29:M34 = False))) & "' ")
      & IF(COUNTIF(A29:J29, ">0") = 0, "", "ORDER BY " & JOIN(", ", IFNA(FILTER(REGEXEXTRACT(ADDRESS(29, COLUMN(A29:J29), 4), "^\D+") & IF((COLUMN(A29:J29) = 1) + (COLUMN(A29:J29) = 3), "", " DESC"), A29:J29)))),
      0
    )
    

    这与您的previous question 有点不同,因为必须使用列字母而不是ColN。更多关于 here.

    如果选中,我将第三列按 asc 排序,因为它是字符串类型。

    【讨论】:

    • 完美!感谢您回答这两个问题!他们最终有了相同的目标,因为我在上一个问题中找到了一半。很抱歉,您最终不得不为两种不同的情况解决问题,但您做得很好,而且效果很好!
    猜你喜欢
    • 2017-11-23
    • 2017-03-21
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多