使用 google 查询作为数组公式,根据另一列中的信息对一列中的值求和

Use google query as an array formula to sum values in a column based on information in another column

我有 2 个标签需要处理。第一个选项卡 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 选项卡的帮助。我需要使用 bulk_market_data 中的 Item Id 列作为标准来与 market_pull 列进行比较,type_id 列从 price 中的相应行中提取 MIN 值列。

除了我需要使用 bulk_market_data 中的 Item Id 列作为标准与 market_pulltype_id 进行比较外,我需要做基本相同的事情volume_remain 列中所有对应行的总和值。

我正在使用数组公式,因为在 bulk_market_data 选项卡中大约有 10,000 行,当我在每一行的每一列中都有一个公式时,sheet 的速度会急剧下降。感谢您抽出宝贵的时间,HERE 是带有概念的示例传播sheet。

在 F4 中使用:

=ARRAYFORMULA(IFNA(VLOOKUP(C4:C, QUERY({market_pull!C4:C, market_pull!J4:K}, 
 "select Col2,sum(Col3) where Col2 is not null and Col1 = FALSE group by Col2"), 2, 0)))

在 G4 中使用:

=ARRAYFORMULA(IF(C4:C="",,IFNA(VLOOKUP(C4:C, SORT(QUERY({market_pull!C4:J}, 
 "select Col8,Col6 where Col1 = FALSE"), 1, 1, 2, 1), 2, 0), 0)))

在 H4 中使用:

=ARRAYFORMULA(IF(C4:C="",,ROUNDUP(IF(
 E4:E1004*F4:F1004=0,,E4:E1004*F4:F1004), 1)))