【和EXCEL对比】分组后的组内排序

    某支股票某个月的收盘价列表,已经按周进行了分组,并计算出了每日的股价增长值。现在,要将每周的记录按照收盘价由高至低降序排序,以便于查看。

    在Excel的网格中,E列的增长量是由公式计算的。需要注意的是,计算每日股票收盘价比上个交易日的增长量,需要在分组之前计算。如果在分组之后计算,由于各个交易日的数据不连续,那么填写表达式时就会比较复杂了。另外,设定首个交易日的增长量为0。

    将每周的股票数据按照日增长量排序,有两种解决方法:

  • 方法一,在排序前,先将E列的结果复制,然后在F列中执行选择性粘贴数值。在Excel中,要将每周的股价记录按照日增长量排序,只能按照E列中的股价增长值,分别在每个周分组中进行降序排序。结果如下:

        仔细观察可以看到,虽然每周中的数据都进行了排序,但是E列的数据却发生了变化。查看E列中单元格中的表达式可以发现,排序后,表达式中引用的其它行的单元格都变得混乱,如E11中表达式为D11-D9,E26中表达式为D26-D25等等。在Excel中,进行排序操作后,单元格表达式中跨行的单元格引用并不会随着原引用单元格的位置调整,而只是根据引用个与当前格的偏移来定位,这样就产生了错误。因此,在Excel中,必须将已经完成计算的单元格中的公式影响去除,如F列中的日增长量就是正确的数据。
        在Excel中,如果对分组后的数据进行组内排序,需要分别对每一组操作,当数据量较大,分组较多时,这样的工作就变得繁琐而易错;如果排序前的单元格中存在表达式,则必须只保留下数值,以避免由于排序所产生的表达式引用错误。
  • 方法二,同样先将E列的数据选择性粘贴到F列。然后将表格中的数据拆组。然后按照主要字段是Week升序,次要字段是F列降序,执行排序。排序完成后,再重新按周分组,结果与方法一相同。
        这种方法避免了在各组中依次排序的操作,在数据量比较大时,效率比较高。但是,仍然需要将公式格中的结果数据复制,而且在拆组重组时,会影响到分组中已经进行汇总的数据。
        Excel中,记录的排序必须在分组之前已经排好,如果需要在分组中重新排序时,操作繁琐,容易产生错误,数据量越大,层次越多,则工作量越大。

    在计算表中,E列中的增长量是由立即计算格计算的,既可以在分组之前计算,也可以在分组之后计算。由于首个交易日的增长量设定为0,需要在立即计算格计算完成后手动修改格值。

    将每周的股票数据按照日增长量排序

    选择任意一天的股票销售数据,按照日增长量,执行降序排序操作。在默认情况下,各个分组中均会执行这一操作(如果仅对单组执行排序,需要选择操作区)。一次操作即可完成,结果如下:

    计算表中的立即计算格,只会在表达式输入时计算一次,后面的操作不会影响已有的计算结果。而计算表中的排序操作可以使得所有同位行在各自的分组中同时进行,无论有多少条数据,或者有多少层分组都不会影响操作,十分方便快捷。