Google表格QUERY数组公式:跨表匹配类型ID计算价格最小值与库存总量
Google表格万行级批量匹配数组公式实现方案
涉及工作表结构
- 数据源表
market_pull(通过EVE Online ESI接口拉取的原始市场订单)列结构:duration、is_buy_order、issued、location_id、min_volume、order_id、price、range、type_id、volume_remain、volume_total - 结果表
bulk_market_data列结构:Citadel ID、Item Id、Item Name、Volume Ea、Qty Available、Lowest Price、Total Volume、Jita Sell、ISK Difference、% Difference
计算需求
bulk_market_data约含10000行数据,逐行写入普通匹配公式会造成表格运算卡顿,需通过单组数组公式完成全量自动计算:
- 匹配规则:以
bulk_market_data的Item Id字段为关联键,匹配market_pull表的type_id字段 - 计算项1:提取所有匹配成功订单的
price列最小值,填入Lowest Price列 - 计算项2:汇总所有匹配成功订单的
volume_remain列剩余总量,填入Qty Available列
可直接复用的公式
所有公式仅需在目标列首行数据单元格输入一次,自动覆盖全列,无需下拉。公式采用单次全表扫描逻辑完成批量匹配,避免逐行重复检索源表的性能损耗,适配万行级数据规模的运算效率要求。
- 填入
Lowest Price列(F2单元格)的公式:
=ARRAYFORMULA(IF(B2:B="",,MINIFS(market_pull!G:G, market_pull!I:I, B2:B)))
- 填入
Qty Available列(E2单元格)的公式:
=ARRAYFORMULA(IF(B2:B="",,SUMIFS(market_pull!J:J, market_pull!I:I, B2:B)))
列映射说明:
market_pull表G列为price、I列为type_id、J列为volume_remain,完全匹配原始表的列顺序。
内容的提问来源于stack exchange,提问作者Michael Jetzer
相关产品推荐
相关产品推荐

