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

Power Apps Canvas应用:Filter无法搜索Excel表新增数据但Search可用

问题原因
  1. Filter函数的委托限制:Excel作为Power Apps数据源时,in操作符不支持云端委托执行,只能在客户端本地已加载的数据集内筛选。你的初始数据刚好是2000行(Power Apps默认的非委托查询行上限),所以Filter能检索到这些本地数据;新增的记录未被加载到本地缓存,因此Filter无法找到。
  2. Search函数的匹配逻辑差异:Search函数支持Excel数据源的委托,因此能查到新增的云端数据,但你当前的Search公式未对搜索文本做大小写统一和首尾空格处理,导致与原数据的匹配逻辑和Filter不一致,无法返回部分初始数据。
解决方案

方法1:调整本地缓存上限(适合数据量不大的场景)

  • 在Power Apps编辑器的设置→高级设置中,找到“Data row limit for non-delegable queries”,将数值调整为大于当前数据总行数(比如3000)。这样新增的记录会被加载到本地,原来的Filter公式就能检索到新旧所有数据。
  • 缺点:数据量过大时会影响应用性能。

方法2:修改Filter公式为支持委托的等价逻辑(推荐)

由于in不支持Excel委托,改用支持委托的Search函数,并对齐原Filter的匹配规则(大小写不敏感、忽略首尾空格):

Search(SacStokTable, Lower(Trim(filterSacStokYonetimi)), "Malzeme")
  • 说明:Lower统一大小写,Trim去除首尾空格,确保和原Filter的匹配逻辑一致;Search支持云端委托,无论数据量多少都能检索到所有新旧数据。

方法3:预处理数据源(从根源统一格式)

在表单的新增逻辑中,将Malzeme列的内容自动转成小写后存入Excel,比如在表单的OnSuccess或提交按钮中添加:

Patch(SacStokTable, Defaults(SacStokTable), {
    Malzeme: Lower(Trim(YourForm.Malzeme.Value)),
    // 其他字段...
})

之后就可以用简化的Filter公式,同时配合缓存上限调整或委托支持:

Filter(SacStokTable, Lower(Trim(filterSacStokYonetimi)) in Malzeme)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 08:30:13