之前的案例中,我给大家分享了 Power Query 在实际工作中帮助大家减负的一些实用案例,其中一个案例需要用到 countif 函数,这个辅助列我是在 Excel 中添加的。
有学员在问:Power Query 中是否可以直接实现 countif 函数的效果?这样就不需要在源数据表中添加辅助列,观感和体验都更佳。
PQ 中要实现按条件统计,有很多种方法,今天我分享的这个,应该来说是相对比较简单,且加载比较快的。
案例:
下图 1 是各楼层的物资采购表,请统计出每种物资在表格中出现的顺序次数。
效果如下图 2 所示。
解决方案:
1. 选中数据表的任意单元格 --> 选择菜单栏的“数据”-->“从表格”
2. 在弹出的对话框中保留默认设置 --> 点击“确定”
表格已上传至 Power Query。
3. 选择菜单栏的“添加列”-->“索引列”-->“从 1”
4. 选择菜单栏的“主页”-->“分组依据”
5. 在弹出的对话框的第一个下拉菜单中选择“物资”--> 点击“确定”
6. 将默认的公式按以下方式稍加修改:
将 RowCount 改为 AddIndexColumn
将 (_), Int64.Type改为 (_,"第几次出现",1,1, Int64.Type)
最终公式变成下面这样:
= Table.Group(已添加索引, {"物资"}, {{"计数", each Table.AddIndexColumn(_,"第几次出现",1,1, Int64.Type)}})
7. 点开“计数”旁边的扩展钮 --> 在弹出的菜单中取消勾选“物资”和“使用原始列名作为前缀”--> 点击“确定”
8. 将“索引”列按“升序排序”,这样就能恢复数据表的原始顺序。
9. 删除“索引”列。
10. 将“楼层”列拖动到最左边。
11. 选择菜单栏的“主页”-->“关闭并上载”-->“关闭并上载至”
12. 在弹出的对话框中选择“现有工作表”及所需上传至的位置 --> 点击“加载”
绿色的表格中,就多出了一个 H 列,这一列计算的就是每个物资在表格中是第几次出现。