【问题标题】:Excel, giving data labels to only the top/bottom X% valuesExcel,只为顶部/底部 X% 值提供数据标签
【发布时间】:2012-08-21 15:10:03
【问题描述】:

我有一个简单的折线图,我已将数据标签添加到:

但我不想要所有这些标签。我只希望显示顶部和底部的 10%(任意数字)值。例如,在图片中,我只希望显示 51、54、57、61、66、68、74 的标签。我可以手动删除其他标签,但图表数据会随着时间动态变化。有没有办法做到这一点?这些标签中的文本现在只是一个占位符,最终将有 6-10 个字符长,此时拥有所有这些标签将变得一团糟。

我对 VBA 并没有真正的信心,所以我只想在万不得已的情况下使用它。

编辑:感谢 Scott 富有洞察力的回答。它与手动填充的数据标签列完美配合。但是,如果想要动态填充它,则需要一些陪审团操纵。我使用以下公式来填充它:

=IF(OR(O1=LARGE($O$1:$O$30,1),O1=LARGE($O$1:$O$30,2),O1=LARGE($O$1:$O$30,3)),O1,"")

基本上,如果 O 中的值是列表中的第一个、第二个或第三个值,它会将单元格值从列 O 复制到列 P。如果不是其中任何一个,它将使单元格留空。但即使单元格在视觉上是空白的,如果单元格中有公式,Excel 的图表函数也会将该值解释为 0。这意味着图表的整个底部都有重复的“0%”数据标签。为了解决这个问题,我将 FALSE 参数的值设置为负数,然后将图表上的最小值从自动更改为 0。这会使图表底部下方的不合适值超出可见范围。

【问题讨论】:

  • 您可以使用图片链接指向包含您想要的标签的单元格(您可以设置公式以使这些单元格井井有条),但是您将不得不每月调整它们以适应图表上的正确位置,这比手动删除不需要的标签要少,但仍然是手动的。除此之外,我想不出更好的非 VBA 解决方案。
  • 我认为没有非 VBA 方法。通过support.microsoft.com/kb/914813,此链接可能会帮助您入门
  • 喜欢答案...我发现的一个简化是在 FALSE 语句的 FALSE 部分中使用 NA() IF 。 Excel 中的图表会忽略这些,因此您无需设置解决方法。

标签: excel charts


【解决方案1】:

啊哈!

就在我以为除了图片链接没有非VBA解决方案的时候,我的聪明才智来了:)

您可以分阶段执行以下操作:

1) 在原始系列列旁边创建一个数据集,其中仅包含您想要为其添加标签的值(同样,这可以由公式驱动以仅选择顶部/底部 n 值)。请参见下面的 D 列。

2) 将此数据系列添加到图表并显示数据标签。

3) 将线条颜色设置为No Line,这样就不会出现了!

4) Volia!见下文!

【讨论】:

  • 太棒了!我可以根据我刚刚在尝试解决其他问题时遇到的问题预见到这个问题,但我会努力解决的。也许你有解决这个问题的办法。正如您在 OP 的图片中看到的那样,我将 X 轴反转(49 是列表中的最后一个值,但图表上的第一项)。当我将第二个系列添加到同一个图表时,第二个系列的轴不会反转,只有第一个。我不知道如何克服这个问题。
  • Derp,我只会颠倒列表而不是图表。无论如何,该列表仅用于图表值,实际上并未读取/打印。感谢您的帮助!
  • 太棒了。这是一个有趣的过程!
  • 好吧,事情并没有像希望的那样好。但我确实设法将它组装在一起。请参阅 OP 进行编辑。
  • 饼图可以做这样的事情吗?
猜你喜欢
  • 1970-01-01
  • 2018-03-07
  • 2015-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 2023-03-19
  • 2010-12-31
相关资源
最近更新 更多