Google表格按2个单独条件过滤

Posted

技术标签:

【中文标题】Google表格按2个单独条件过滤【英文标题】:Google Sheets Filtering by 2 separate conditions 【发布时间】:2020-04-30 15:29:11 【问题描述】:

我正在尝试创建一种方法来最有效地查看谁在某一天和某个时间段工作。到目前为止,我已经创建了我的数据列表,其中包含 A 中的代表名称、B 中可用的日期、D 中的代表名称以及 E 中可用的时间块。我一直在尝试使用 FILTER为了让它基于2个下拉菜单拉。我已经尝试使用所有这 3 个:

=filter(Sheet2!A2:A999,Sheet2!B2:B999=A2,Sheet2!E2:E999=B2) 

=FILTER(Sheet2!A2:A,(Sheet2!B1:b=A2)+(Sheet2!B2:B=B2)

=Filter(Filter(Sheet2!A2:A999, Sheet2!B2:B999=A2), Sheet2!B2:B999=B2)

但我无法破解它。最后一个嵌套公式似乎运行正常,只是它每次返回的行数不同,所以我不知道如何避免它得到的不匹配范围错误。公平地说,我基本上是在尝试从头开始创建它,周六之前对 FILTER 函数一无所知。关于如何使用过滤器完成此任务的任何想法都会非常有帮助。

https://docs.google.com/spreadsheets/d/1WhBSQy4OZFtJvheNHd5ZfIRvcDxvUb-WhdY0mUci3O0/edit?usp=sharing

【问题讨论】:

您能否将工作表设为“可编辑”,以便人们可以帮助处理工作表本身? 【参考方案1】:

我在您的工作表上找到了此功能=filter(Sheet2!A2:A136, Sheet2!B2:B136 =G2),并基于此添加了过滤器,并且可以正常工作。

工作条件是:

=filter(Sheet2!A2:A136, Sheet2!B2:B136 =A2, Sheet2!E2:E136 = B2)

基于FILTER 文档:

过滤器(范围,条件1,[条件2,...])

【讨论】:

当我插入它时,它会出现“在过滤器中找不到匹配项”错误。我可能只是输入了一些错误的数据,所以我会进一步测试。 当您选择的时间块上没有数据时会出现此错误。我试过星期一 -> 730-8 例如,结果是 Ne'Keya Esteen、Dustin Hernandez 和 Michael Schafer 有趣。那天和那个时间的结果肯定比即将到来的要多,但我认为这可能是我的数据输入问题。【参考方案2】:

首先,在您的数据验证中将7-7:30 修复为7-730。然后使用这个:

=ARRAYFORMULA(UNIQUE(QUERY(TO_TEXT(Sheet2!A2:B; Sheet2!D2:E), 
 "select Col1 where Col2 matches '"&TEXTJOIN("|", 1, A2:B2)&"'")))

【讨论】:

不幸的是,这是基于日期的过滤,而不是时间块。但它确实让我对 QUERY 函数有了更好的理解,所以我可以更多地使用它。 我确实让它在一组单独的测试数据上工作,这些数据已经大大简化了,所以我将从大表中重新处理我的数据并更新,谢谢! 我重新处理了我的所有数据以确保它是统一的,并且与数据验证相匹配,并且它只是按时间过滤,而不是按天过滤(例如,如果我选择 10 点的星期二,Taylor Hudson即使我星期二不工作也会出现,而且我的名字附近没有星期二的数据点。)我显然做错了什么,我只是不知道那是什么。 现在是按天过滤,而不是按时间过滤。例如,Sara Sikra 11 岁,但显示她 6 岁。我想知道我是否可以只比较这 2 列结果中的结果,并删除不重复的结果?

以上是关于Google表格按2个单独条件过滤的主要内容,如果未能解决你的问题,请参考以下文章

Excel到Datagridview过滤器和位置

Redshift:获取行的排名,按条件过滤

fiddler 按条件过滤

按条件过滤大熊猫

如何按条件过滤数组

Google表格过滤器使用OR标准