【问题标题】:Filter data (Not In) based on condition within two data sets in Google sheet根据 Google 表格中两个数据集中的条件过滤数据(不在)
【发布时间】:2019-11-27 08:57:34
【问题描述】:

拥有状态为活动和已解除的员工数据集。第二个数据集有他们向办公室报告的时间。试图使用一个公式来获得当天缺勤的员工的姓名。为了便于理解,我附上了图片。请找到我创建了我使用的示例数据和公式的工作表。尝试使用一个数组公式或查询来实现它

https://docs.google.com/spreadsheets/d/1Dj7agceCBS_aCm2GVm4EQHqS8_wQYifoKLMcA0fv4fM/edit?usp=sharing

【问题讨论】:

    标签: regex google-sheets filter array-formulas google-query-language


    【解决方案1】:

    已经使用过滤和匹配实现了它

    {"Absent For the Day";FILTER((query(importrange("1Dj7agceCBS_aCm2GVm4EQHqS8_wQYifoKLMcA0fv4fM","empdata!A2:B30"),"select Col1 where Col2='Active'")),ISERROR(MATCH((query(importrange("1Dj7agceCBS_aCm2GVm4EQHqS8_wQYifoKLMcA0fv4fM","empdata!A2:B30"),"select Col1 where Col2='Active'")),A2:A20,0)))}
    

    【讨论】:

      【解决方案2】:

      尝试:

      =ARRAYFORMULA({"Absent For the Day", ""; 
       SPLIT(FILTER(empdata!A2:A, empdata!B2:B="active", 
       NOT(REGEXMATCH(empdata!A2:A, TEXTJOIN("|", 1, A2:A))))&"♦Absent", "♦")})
      

      【讨论】:

      • 由于emp数据实际上在另一个工作表中,因此使用导入范围代替empdata!A2:A,empdata!B2:B =“active”将其替换为以下。但它不起作用(query(importrange("1Dj7agceCBS_aCm2GVm4EQHqS8_wQYifoKLMcA0fv4fM","empdata!A2:B30"),"select Col1 where Col2='Active'") ,(query(importrange("1Dj7agceCBS_aCm2GVm4EQHqS8_wQYifoKLMcA0fv4fM","empdata!A2:B30"),"select Col1 where Col2='Active'")
      • @Kanted 我明白了。在这种情况下,它需要是:=ARRAYFORMULA({"Absent For the Day", ""; SPLIT(FILTER(QUERY(IMPORTRANGE("1Dj7agceCBS_aCm2GVm4EQHqS8_wQYifoKLMcA0fv4fM", "empdata!A2:B"), "select Col1 where lower(Col2) = 'active'", 0), QUERY(IMPORTRANGE("1Dj7agceCBS_aCm2GVm4EQHqS8_wQYifoKLMcA0fv4fM", "empdata!A2:B"), "select Col2 where lower(Col2) = 'active'", 0)="active", NOT(REGEXMATCH(QUERY(IMPORTRANGE("1Dj7agceCBS_aCm2GVm4EQHqS8_wQYifoKLMcA0fv4fM", "empdata!A2:B"), "select Col1 where lower(Col2) = 'active'", 0), TEXTJOIN("|", 1, A2:A))))&"♦Absent", "♦")})
      • i.stack.imgur.com/Lsw49.png 或尝试以下更短的答案
      【解决方案3】:

      尝试:

      =ARRAYFORMULA({"Absent For the Day", ""; 
       SPLIT(QUERY(IMPORTRANGE("1Dj7agceCBS_aCm2GVm4EQHqS8_wQYifoKLMcA0fv4fM", "empdata!A2:B"), 
       "select Col1 
        where lower(Col2) = 'active' 
          and not Col1 matches '"&TEXTJOIN("|", 1, A2:A)&"'", 0)&"♦Absent", "♦")})
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-30
        • 2019-01-17
        • 2012-12-21
        • 1970-01-01
        • 2022-09-29
        • 2018-10-08
        相关资源
        最近更新 更多