基于多条件及用户ID数组的Power Query表求和技术问询
基于多条件和团队ID列表的Power Query求和方案
嘿,我来帮你搞定这个Power Query里的多条件求和问题!结合你提到的错误类型、年月和四个团队的ID列表,咱们一步步来实现:
1. 导入Excel里的关键数据到Power Query
首先得把Excel里的那些命名范围和单元格引用弄到Power Query里才行:
- 打开「数据」选项卡,点击「获取数据」→「自其他来源」→「自Excel表格/范围」
- 分别选择四个团队的ID命名范围(
MI_Equities、M_Bonds、SSR_Equities、SSR_Bonds)、错误类型所在的B28单元格,还有存储年月的目标单元格,把它们都加载到Power Query编辑器中。
2. 合并所有团队的ID列表
四个团队的ID分散在不同范围里,咱们先把它们合并成一个统一的列表,方便后续匹配:
// 假设每个团队表的ID列名称都是「ID」,如果不是记得先重命名列 AllTeamIDs = List.Combine({MI_Equities[ID], M_Bonds[ID], SSR_Equities[ID], SSR_Bonds[ID]}) // 如果担心ID有重复,可以加个去重: // AllTeamIDs = List.Distinct(List.Combine({MI_Equities[ID], M_Bonds[ID], SSR_Equities[ID], SSR_Bonds[ID]}))
3. 筛选SQL数据表的目标数据
接下来加载你的SQL数据表,然后根据三个条件筛选出符合要求的记录:
// 假设SQL数据表名为SQL_Data,对应列名分别是ErrorType(错误类型)、RecordYearMonth(年月)、RecorderID(记录人员ID) // 把YourYearMonthCellName换成你存储年月的单元格命名,或者直接用类似「BXX」的单元格引用 FilteredData = Table.SelectRows(SQL_Data, each [ErrorType] = Excel.CurrentWorkbook(){[Name="B28"]}[Content]{0}[Column1] and [RecordYearMonth] = Excel.CurrentWorkbook(){[Name="YourYearMonthCellName"]}[Content]{0}[Column1] and List.Contains(AllTeamIDs, [RecorderID]) )
⚠️ 注意:要确保SQL数据表的列名和你写的一致,而且年月的格式要和单元格引用的格式匹配(比如都是YYYY-MM的文本,或者统一的日期格式),避免因为格式不匹配筛选不到数据。
4. 对筛选后的数据求和
最后一步就是对筛选出的数据里需要求和的列(比如「Amount」列)计算总和:
TotalSum = List.Sum(FilteredData[Amount])
完成后把这个求和结果加载回Excel的目标单元格就可以啦!
内容的提问来源于stack exchange,提问作者Marek Klučka
相关产品推荐
相关产品推荐

