You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Google Sheets Query中集成LevenshteinDistanceDP自定义函数的问询

解决方案

首先明确:Google Sheets的QUERY函数不支持在其SQL语法中直接调用自定义函数,所以没法直接在原QUERY的WHERE子句里加入levenshteinDistanceDP的判断条件。但可以通过FILTER+LET组合实现需求,同时解决性能问题:

优化后的公式

=LET(
  初步筛选结果, QUERY(Expenses!A:H, "SELECT A,B,C,D,H WHERE LOWER(H) contains LOWER('"&K3&"')", 1),
  FILTER(初步筛选结果, levenshteinDistanceDP(LOWER(INDEX(初步筛选结果,,5)), LOWER(K3)) < 3)
)

原理说明

  1. 初步筛选:先用原QUERY逻辑把包含K3关键词的行筛选出来(同时保留H列用于后续计算),这一步用内置函数完成,速度极快,能把需要计算编辑距离的行数量从数千行大幅压缩。
  2. 二次筛选:对初步筛选后的结果,调用自定义函数计算编辑距离,只保留距离小于3的行。因为计算范围已经缩小,自定义函数的调用次数大幅减少,不会出现全量重计算的性能问题。

替代简化方案(直接用FILTER组合双条件)

如果初步筛选后的行数本身不多,也可以直接用FILTER同时判断两个条件:

=FILTER(Expenses!A:D,
  REGEXMATCH(LOWER(Expenses!H), LOWER(K3)),
  levenshteinDistanceDP(LOWER(Expenses!H), LOWER(K3)) < 3
)

不过这种方式会对所有行调用自定义函数,性能不如前一种方案,推荐优先使用LET+QUERY的组合。

内容的提问来源于stack exchange,提问作者noah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:55:13