Excel Power Query中统计chg>0与<0次数的方法求助
Power Query统计每周各天涨跌天数的解决方案
错误原因分析
你之前的代码出错主要有两个问题:
chg是数值类型,却用字符串"0"做比较,导致类型不匹配Table.SelectRows返回的是筛选后的表格,而非你需要的天数计数,需要用Table.RowCount统计行数
具体操作步骤
假设你已经完成了按「星期几」分组并计算出每日平均波动(分组时保留了AllRecords列存储对应星期的所有原始数据):
添加上涨天数列
在添加自定义列时使用以下代码:DaysPositive = Table.RowCount(Table.SelectRows([AllRecords], each [chg] > 0))逻辑:先筛选出该星期所有
chg>0的行,再统计行数得到上涨天数。添加下跌天数列
同理,添加下跌天数的自定义列:DaysNegative = Table.RowCount(Table.SelectRows([AllRecords], each [chg] < 0))整理最终列
删除不需要的AllRecords列,最终保留「星期几 | 平均值 | 上涨天数 | 下跌天数」四列即可。
补充:未分组时的前置操作
如果还没按星期几分组,先执行以下步骤:
- 选中「星期几」列,点击开始选项卡的「分组依据」
- 分组依据选择「星期几」,添加两个聚合项:
- 名称填「平均值」,操作选「平均值」,列选「chg」
- 名称填「AllRecords」,操作选「所有行」,列选任意包含
chg的列(或直接选整个表)
- 确定后再执行上述添加自定义列的步骤。
内容的提问来源于stack exchange,提问作者Gautam Laungani
相关产品推荐
相关产品推荐

