Office Scripts中如何正确使用sortByValues对数据透视表排序?
解决Office Script中透视表按值排序行字段的问题
你需要正确配置sortByValues方法的参数,该方法需指定排序方向、原始数据字段名称及对应汇总函数,才能实现按“Sum of Region Amt.”升序排序“Vendor Name”的需求。
正确代码示例
// filter by value greater than $0 newPivotTable.getRowHierarchy("Vendor Name").getFields()[0].applyFilter({ valueFilter: { condition: ExcelScript.ValueFilterCondition.greaterThan, comparator: 0, value: "Sum of Region Amt." } }); // 按"Sum of Region Amt."升序排序"Vendor Name" newPivotTable.getRowHierarchy("Vendor Name").getPivotField("Vendor Name").sortByValues( ExcelScript.SortDirection.ascending, // 排序方向:升序 "Region Amt.", // 数据源中的原始字段名(非透视表显示的"Sum of Region Amt.") ExcelScript.SubtotalFunction.sum // 匹配透视表使用的求和汇总方式 );
关键注意点
- 第二个参数必须传入数据源里的原始字段名称(这里是"Region Amt."),而非透视表中带前缀的显示名"Sum of Region Amt."。
- 第三个参数要和你透视表中使用的汇总函数一致,因为目标值是求和结果,所以用
ExcelScript.SubtotalFunction.sum。 - 若需要降序排序,只需将
ExcelScript.SortDirection.ascending替换为ExcelScript.SortDirection.descending。
内容的提问来源于stack exchange,提问作者JSP
相关产品推荐
相关产品推荐

