Google sheets 若数据符合条件,则向行中添加数据,否则忽略
我的电子表格中有来自谷歌表单的原始数据,如下所示:Google sheets 若数据符合条件,则向行中添加数据,否则忽略,google-sheets,Google Sheets,我的电子表格中有来自谷歌表单的原始数据,如下所示: (Cost) (Source) (Frivolous) (Medium) (Comments) A B C D E 1 15.94 McDonalds Yes Credit was hungry 2 98.32 School No Chec
(Cost) (Source) (Frivolous) (Medium) (Comments)
A B C D E
1 15.94 McDonalds Yes Credit was hungry
2 98.32 School No Check Paid for textbooks
3 843.00 Hospital No Check Surgery
4 0 asdff Yes N/A Ignore this one woops
5
6 23.99 Dentist No Credit Check up
(Cost) (Source) (Frivolous) (Medium) (Comments)
A B C D E
1 98.32 School No Check Paid for textbooks
2 843.00 Hospital No Check Surgery
3 23.99 Dentist No Credit Check up
我希望此数据始终复制到不同的工作表,但仅复制与条件匹配的数据。这种情况下的条件是,如果Frivolous
是No
,这意味着我只想在这个单独的页面上跟踪有效的重要支出
我的第二页我希望它们如下所示:
(Cost) (Source) (Frivolous) (Medium) (Comments)
A B C D E
1 15.94 McDonalds Yes Credit was hungry
2 98.32 School No Check Paid for textbooks
3 843.00 Hospital No Check Surgery
4 0 asdff Yes N/A Ignore this one woops
5
6 23.99 Dentist No Credit Check up
(Cost) (Source) (Frivolous) (Medium) (Comments)
A B C D E
1 98.32 School No Check Paid for textbooks
2 843.00 Hospital No Check Surgery
3 23.99 Dentist No Credit Check up
请注意,空条目是如何被忽略的,并且在琐碎
下带有Yes
的条目也会被忽略
我将如何实现这一点?我完全不知道这将如何工作,因为我只能通过
filter
来实现这一点,而这将不适用于此 实际上,我在使用[google sheets]ArrayFormula函数时遇到了一些问题,所以我使用了一个老式的公式和它的数组形式。在A2中
=iferror(index(Sheet13!A$1:A$99, small(index(row($1:$99)+(Sheet13!$C$1:$C$99<>"no")*1E+99, 0, 0), row(1:1))), "")
=iferror(索引(Sheet13!A$1:A$99,小)(索引(行($1:$99)+(Sheet13!C$1:$C$99“否”)*1E+99,0,0),行(1:1)),“”)
从右到下填充
事实上,你是正确的,这可以在[excel]中用与[google电子表格]相同的解决方案来解决。然而,在较新的[EXE](2010+)中,使用[google spreadsheet]不支持的高级方法,我确信[google sheets]具有更优雅的功能,我现在不想回忆起这些功能
查看Sheet13和Sheet14以获得工作示例。我想说几句话为谷歌电子表格辩护,并展示一些可以工作的强大功能,但[excel]不支持这些功能 查询 首先,您可以使用简单查询:
=QUERY(sheet1!A:E,"select * where C = 'No'")
这一个简短的公式将给出所需的结果,不需要从右到下填充
过滤器
实际上,您也可以使用过滤器。该功能似乎也能工作:
=FILTER(sheet1!A:E,sheet1!C:C="No")
请阅读有关此功能的更多信息:
满满的
你会发现在谷歌电子表格中可以做很多令人兴奋的事情。那么,为什么数据► 自动筛选工作?不幸的是,我在谷歌文档上,所以我需要一种基于公式的方法。文档中的筛选
的唯一选项是手动筛选,每次将新数据放入电子表格时都必须进行手动筛选。您已将问题标记为[excel]。我将为您重新标记它,以便您可以得到一个有针对性的答案。我理解,但这两个平台非常相似,您很少会发现两者之间存在脱节。当然,有某种数组公式可以做到这一点,这对于高级excel用户来说是完美的回答?好吧,一个条件匹配来逐步显示第一、第二、第三等匹配记录正好是其中一个时间。哇,这是一个疯狂的公式。章节*1E+99
的含义是什么?其目的是什么?另外,如果你能允许进入谷歌文档文件,我会非常感激。到目前为止,这个公式在我放置它的单元格中输出了一个double
值,但我猜我的数据并没有以某种方式完全对齐。实际上,你是在将一系列匹配的行号传递回外部索引函数。与column=“no”不匹配的任何行的行号中都会添加一个1,后跟99个零。这不是一个小数目(实际上是一个非法的行号)。填写时,右边的行(1:1)将1、2、3、4等传递给small的k参数。感谢您的解释。它工作得很好。然而,有一个问题。我的一列是交易日期。例如,2016年7月30日
。此公式将新工作表上的内容解释为42579
。我认为这是由于1E+99
?在这种情况下可以做什么?有趣的事实-因为Lotus是首要的(通常是事实上的标准)电子表格程序,他们把1900年作为闰年(每100年,通常的闰年不是一年)包括Excel在内的所有电子表格程序都必须故意包含相同的错误,否则它们无法保持与Lotus的跨平台兼容性。因此,由于Lotus的失误,自1900年2月29日以来,所有的电子表格程序都有一个,而实际上不应该有一个。感谢[google sheets]特定的followup Max.tbh,我自己的公式知识太具体了。难以置信。您可以在Google文档中执行SQL命令吗?那太疯狂了。谢谢你,非常感谢你。我真的很感激。