filter函数在哪个版本(我的wps里为什么没有Filter函数)
本文目录
我的wps里为什么没有Filter函数
WPS Office红标的升级到最新版就有了。
可将WPS Desktop Red徽标更新至最新版本。
python filter函数
不会死循环,生成器是个虚拟抽象的概念,你可以认为_odd_iter() primes() 里面运行的时候
python解释器并不生成实际的List,也就不会耗费内存和时间
真正分配给List内存只在以下过程, primes()这个生成器是逐步分配内存的!!
for n in primes():
if n《1000:
print(n)
else:
break
另外提醒你下,你的程序只能在Python 3.x版本下正确运行:-)因为你用的是 filter返回生成器对象的用法!!如果你要你的程序在Python 2.x正确运行,需改成如下形式。
根据你最新的追问,“为什么it=filter(lambda x : x%n》0 ,it)不行??“直接在filter里用Lambda表达式是完全可以的,你的原因是你的Lambda表达式漏输入了一个n,请看如下形式.
# Python 2.x下需导入itertools库的ifilter才能和python 3.x的filter等效
import itertools
def _odd_iter():
n=1
while True:
n=n+2
yield n
def _not_divisible(n):
return lambda x:x%n》0
def primes():
yield 2
it=_odd_iter()
while True:
n=next(it)
yield n
#it=itertools.ifilter(_not_divisible(n),it)
it = itertools.ifilter(lambda x, n=n: x%n 》 0, it)
for n in primes():
if n《1000:
print(n)
else:
break
Office 365新增的Filter查询函数,完爆Vlookup函数
VLOOKUP函数是我们在日常工作中使用频率非常高的一查询函数,我们可以用VLOOKUP函数,根据一个查询条件,比如员工编号,找到该员工在人事信息表中的部门、职务等信息,也可以在工资表中找到其对应的工资数据。
VLOOKUP很实用,不过它有三大缺点:
01 只能根据左侧的查询条件返回右侧的结果
比如下图所示的这个表格,我们可以根据员工编号找到员工姓名,但是如果想要用VLOOKUP函数根据员工姓名查询员工编号,是做不到的,除非结合到IF函数形成虚拟表。
02 无法直接屏蔽查询不到返回的#N/A的结果
如果查询结果中有很多查找不到的数据,就会出现大量的#N/A的错误信息,想要隐藏这些#N/A,必须要结合到IFERROR函数。
03 无法直接实现多条件查询
必须建立辅助列或者通过数组公式的方法来实现。
04 无法一次带出符合查询条件的多个结果
比如将上一张图左侧的表格的数据,按照订单编号的条件,展示所有A订单的商品型号到金额的数据到下图所示的表格中。需要结合到MATCH函数,通过复杂的函数嵌套才能实现。
而如果你使用的Office是365的版本,就可以利用365中新增的FILTER函数,既可以实现现有VLOOKUP函数具备的功能,还可以实现刚刚提到的VLOOKUP做不到的四项功能。
我们先来来看看FILTER的语法:
FILTER(数据区域,筛选条件,)
现在我们通过一些案例来系统学习FILTER函数的用法。
单条件查询也就是实现VLOOKUP函数的功能。比如下图中我们需要根据员工编号查询员工姓名,只需要输入函数:
=FILTER(B2:B11,A2:A11=D3,"")
第一个参数B2:B11是需要返回的结果列,这个参数可以是一列也可以是多列。第二个参数A2:A11=D3是筛选条件,等号左侧的是数据源表中的条件范围列,右侧则是结果列中的查询条件。第三个参数是如果找不到符合条件的数据的返回结果,这里输入的""表示空。
因为FILTER函数不像VLOOKUP函数那样,必须将条件列和结果列都包含到数据区域中,这样我们就可以任意选择结果列,也就可以解决VLOOKUP不能实现逆向查询的问题。
而且也不用借助IFERROR函数隐藏查找不到时返回的#N/A的错误信息了。
当有多个查询条件时,用“+”表示条件“或”,“或”是指多个条件中只要一个满足的情况;用“*”表示条件“与”,“与”是指多个条件必须同时满足的情况。
比如下图所示的案例,我们要查询A订单中1847这款商品的销售额,这就是与的情况,多个条件需要同时满足。这里输入的公式是:
=FILTER($H$2:$H$15,($A$2:$A$15=J2)*($D$2:$D$15=K2),"")
每个条件放在一对()中,中间用*号连接,可以继续往后连接条件。
如果想要一次返回符合条件的多列的数据,可以在第一个参数中选择多列。比如下图所示的这个案例。
这里第一个参数我们输入的是2列的数据,这样返回的结果就有2列,而通过+号则表示符号条件的数据有2个,这样返回结果就有2行2列。我们无须选择像以前数组公式那样选择多行多列,只需要将光标放在一个单元格中,比如这里的D3单元格,公式会自动将结果扩展到右侧和底部。
而且使用Filter函数我们都不需要使用绝对引用,因为它们仅存在于一个单元格中,并将其结果溢出到相邻单元格。
我们再用这个案例用动图感受一下FILTER函数的强大之处。
当我们改变订单编号的条件,底部的数据就会动态更新。
这个Office 365新增的Filter查询函数,是不是完爆Vlookup函数呢?
那个版的WPS有fiLter
O365的最新版本有fiLter,WPS在更新之后,也更新了Filter函数了,该函数也是数组函数,可以实现一对多的查询了。
更多文章:
go语言教程详细(GO语言(三十):访问关系型数据库(上))
2026年4月19日 11:00
构造函数有没有返回类型(java中的构造方法为什么不要返回类型)
2026年4月19日 10:00
java购物车源代码(用J**A+SERVLET+J**ABEAN写购物车代码)
2026年4月19日 09:40
filter函数在哪个版本(我的wps里为什么没有Filter函数)
2026年4月19日 09:20
struts的配置文件是什么(Struts2中如何配置struts、xml)
2026年4月19日 09:00
regression line(linear probability model probit 和 tobit的区别)
2026年4月19日 08:40
ajax请求数据失败(我用Ajax请求数据,但是老不成功提示如下图:然后下面是代码)
2026年4月19日 08:20




