SQL语句转Excel公式:如何将指定查询语句转换为Excel公式?
将SQL查询转换为Excel公式
首先拆解原SQL的逻辑:
select aColumn, cColumn where cColumn <= 0.2 or cColumn <= -0.2
这个SQL的作用是选取aColumn和cColumn列中,满足cColumn小于等于0.2 或者 小于等于-0.2的行。不过这里的条件存在冗余——所有满足cColumn <= -0.2的行必然也满足cColumn <= 0.2,所以原SQL实际等价于select aColumn, cColumn where cColumn <= 0.2。如果这是笔误,你实际想筛选的是cColumn绝对值大于等于0.2的行(即cColumn >= 0.2 OR cColumn <= -0.2),以下会同时给出两种场景的Excel公式。
1. 单个单元格条件判断
用于判断某一行的cColumn是否符合条件(以C2单元格为例):
- 按原SQL冗余条件:
简化后等价于:=OR(C2<=0.2, C2<=-0.2)=C2<=0.2 - 若为笔误,筛选绝对值≥0.2的行:
=ABS(C2)>=0.2
2. 筛选符合条件的整列数据(Excel 365/2021及以上)
用FILTER函数直接提取符合条件的aColumn(A列)和cColumn(C列)数据:
- 按原SQL冗余条件:
=FILTER(A:C, C:C<=0.2, "无匹配数据") - 若为笔误,筛选绝对值≥0.2的行:
注:第三个参数是无匹配数据时的提示文本,可根据需要修改或删除。=FILTER(A:C, ABS(C:C)>=0.2, "无匹配数据")
3. 标记符合条件的行
在新列(如D列)标记每行是否符合条件,方便后续筛选:
- 按原SQL冗余条件:
=IF(C2<=0.2, "符合", "不符合") - 若为笔误,筛选绝对值≥0.2的行:
输入公式后下拉填充即可应用到所有行。=IF(ABS(C2)>=0.2, "符合", "不符合")
内容的提问来源于stack exchange,提问作者Muhtadi
相关产品推荐
相关产品推荐

