如何让数据透视表列字段的成员按自然顺序显示,而不是按字母顺序显示?

时间:2016-10-14 18:54:09

标签: excel pivot-table excel-interop date-formatting

我被教会如何转换从我想要的转换的日期字符串值(“2015年9月”,“2015年10月”等)到Excel认为它应该是什么(“15-Sep” ,“十月十五日”等)here

当它显示“严重”时,列至少以正确的顺序显示(“2015-Sep”后跟“2015-Oct”)。现在它们是“9月15日”和“10月15日”,但它们按照“自然”顺序显示并按字母顺序显示(“10月15日”后跟“9月15日”)。

这是解决一个问题的典型场景(特别是在软件开发中非常明显),导致另一个问题导致其丑陋的后方。

这就是我创建数据透视表的“月份”部分的方法:

var monthField = pvt.PivotFields("MonthYr");
monthField.Orientation = XlPivotFieldOrientation.xlColumnField;

在解决显示格式问题之前:

enter image description here

修正显示格式问题后(“15-Sep”现在是“9月15日”等,但现在几个月出现故障):

enter image description here

我可以“吃蛋糕,也可以吃它”可以这么说吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:2)

通过阅读评论,听起来您需要将C#日期转换为Excel日期。在第二条评论中,您提到您能够获得价值" 201509"和" 201510"在excel表上。

我建议您使用LEFT()RIGHT()函数分隔年份和月份,然后使用DATE()函数获取9/1/15和10 /的Excel序列号1/15。

这里是我想到的步骤的截图(万圣节快乐!):

Dates in Excel PivotTable Issue

最后,您现在可以使用公式monthField.NumberFormat = "MMM yy"格式化序列号。 Excel将意识到这是一个日期并按时间顺序排序。