按自定义百分比拆分将子类别分配到主类别的Excel实现咨询
实现方式说明
两种方式都可以实现你要的效果,你可以根据自己的使用场景选择:
1. Excel公式方案
适合数据量较小、规则相对固定的场景:
- 首先用
VLOOKUP/XLOOKUP匹配每个唯一ID对应的主类别,关联到右表的主类别-子类别映射关系 - 用
SUMIF统计当前行上方同主类别下各子类别已经分配的次数,和SubCategoryAllocation标注的分配上限、你自定义的% HC Split占比做对比 - 如果你使用的是Excel 365/2021及以上版本,可以直接用
FILTER筛选出当前主类别下未达分配上限、累计分配占比还没到你预设值的子类别,再用INDEX取第一个符合要求的结果填入即可。如果是低版本Excel,调整为INDEX+MATCH嵌套的数组公式也可以实现。
2. VBA方案
适合数据量大、分配规则复杂、需要高频重复操作的场景:
- 你可以编写VBA脚本,先把右表的主类别映射、子类别占比、分配上限全部读取到字典对象中存储
- 遍历左表的每一行ID,实时更新每个子类别已分配的次数、累计占比,匹配到符合条件的子类别后直接写入对应单元格即可
- 还可以在工作表里添加一个执行按钮,不需要每次手动拖拽公式,点击就能自动完成全表分配,效率更高。
内容的提问来源于stack exchange,提问作者user7948805
相关产品推荐
相关产品推荐

