Excel图表:按值排序(自动)

4

我有以下问题:

我需要将我的条形图中的数据按从高到低的顺序排序:

enter image description here

我知道可以使用数据透视表和数据透视图,但在未来可能会有些复杂。


嗯...祝你好运?有什么需要帮助的吗?你能展示一下哪里出了问题的代码吗? - Dirk Reichel
我只是想知道是否有一些代码可以对图表中的值进行排序。我无法更改A/B列中的值。这只是一个虚构的表格。我尝试编写了一些代码,但它没有起作用。 - Martin Janáč
为了实现这一点,您肯定需要一个已排序的数据集副本作为图表的数据源。而且,水平轴不能是日期轴,而必须是文本轴,因为如果值被排序,日期值将是无序的。 - Axel Richter
3个回答

4
我建议使用帮助列来按照需要对数据进行排序。
  1. 列C: 使用RANK函数对数值进行排名,例如: =RANK(B2, $B$2:$B$16)
  2. 列D: 创建一个包含从1到15的数字顺序列
  3. 列E: 使用MATCHINDEX的组合查找顺序列中的每个值,例如: =INDEX($B$2:$B$16, MATCH(D2, $C$2:$C$16, 0))
  4. 列F: 使用类似第3步的方法查找每个日期。为避免Excel在图表中对日期进行排序,请将结果用TEXT函数包装起来,例如: =TEXT(INDEX($A$2:$A$16, MATCH(E2, $C$2:$C$16, 0)), "dd mmmm yyyy")
  5. 更新图表以引用列E和F
  6. 如果并非所有数值单元格都被填充(如示例所示),则可以使用IFERROR函数封装公式以使其更整洁
下面是示例输出:

enter image description here

更新:
为避免出现相同值时的问题,您可以在排名函数中添加一个COUNTIFRANK(B2, $B$2:$B$16) + COUNTIF($B$2:B2, B2)-1

谢谢,它可以工作,但是... 当有两个或更多相同的值时,它会给我错误。 我尝试在我的下一个图表上使用它,我也需要排序,但是有像(8、3、3、1、0、0、0、0、0)这样的值。 我能否以某种方式创建函数,以便说:“如果此文本已经具有值,请查找下一个?” - Martin Janáč
请查看更新,以避免相同值出现的问题,希望能有所帮助。 - Sam Gilbert
太棒了!你不知道你为我节省了多少时间 :) 非常感谢。 - Martin Janáč
很高兴听到这个。如果这完全回答了您的问题,您是否介意点击答案左侧的绿色箭头将其标记为已回答?祝一切顺利。 - Sam Gilbert
完成。但是很遗憾我不能为你的答案投票,因为我没有足够的声望。 - Martin Janáč
@SamGilbert:感谢您提供的解决方案。对我来说完美地运作! - Tung

1
我的代码运行了,但需要将对 E2 的引用更改为 D2。不确定上面是否有错误...
3. E列:使用MATCHINDEX的组合查找顺序列中的每个值,例如:=INDEX($B$2:$B$16, MATCH(**D**2, $C$2:$C$16, 0))

0
在我的情况下,我在使用排名方法时遇到了重复值的问题,让我感到困惑。
通过创建一个数据透视表并在那里对数据进行排序,我成功实现了自动排序。数据透视表会在数据发生变化时自动重新排序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接