代码之家  ›  专栏  ›  技术社区  ›  B. Clay Shannon-B. Crow Raven

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

  •  2
  • B. Clay Shannon-B. Crow Raven  · 技术社区  · 8 年前

    我被教导如何将日期转换为字符串值,将其从我想要的(“2015年9月”、“2015年10月”等)转换为Excel认为应该的值(“2015年11月15日”、“10月15日”等) here .

    当显示“糟糕”时,列至少以正确的顺序显示(“2015年9月”后接“2015年10月”)。现在,它们是“9月15日”和“10月15日”,但是,它们是按“自然”顺序和字母顺序显示的(“10月15号”之后是“9.15号”)。

    这是一个太典型的场景(尤其是在软件开发中非常明显),解决一个问题会导致另一个问题落后。

    这就是我如何创建数据透视表的“月”部分:

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

    修复显示格式问题之前:

    enter image description here

    修复显示格式问题后(“9月15日”现在是“9月15号”,等等,但月份现在不正常):

    enter image description here

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

    1 回复  |  直到 8 年前
        1
  •  2
  •   CRUTER    8 年前

    从阅读评论来看,您似乎需要将C#日期转换为excel日期。在第二条评论中,您提到您可以在excel工作表中获取值“201509”和“201510”。

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

    下面是我想到的步骤的截图(万圣节快乐!)

    Dates in Excel PivotTable Issue

    monthField.NumberFormat = "MMM yy"