首页 > 解决方案 > 谷歌表格迷你条形图水平

问题描述

我正在尝试创建一个条形图水平显示的迷你图,如下所示:

在此处输入图像描述

但我只能找到垂直显示图表条的选项。

关于如何实现这一点的任何建议,其中负值出现在正值的左侧?

标签: google-sheetsgoogle-sheets-api

解决方案


不,遗憾的是,没有“winloss”迷你图的垂直版本。

但是,您可以使用一堆“条形”迷你图来模拟这一点。例如,在 B1 中,您可以输入:

=SPARKLINE(
{
  IF(A1>0,
    ABS(MIN(A:A)),
    A1-MIN(A:A)),
  ABS(A1)
},
{
  "charttype","bar";
  "max",MAX(A:A)-MIN(A:A);
  "color1","white";
  "color2",IF(A1>0,"green","red")
})

不利的一面是,如果增加条目数,则必须将公式拖得更多。但是,它确实将空白值解释为 0,因此如果您知道您永远不会超过一定数量的条目,则可以将其拖动到该数量的行。(不,SPARKLINE()不适用于ArrayFormula()。)

这个怎么运作:

基本上,它使用双色条形图,其中白色是第一种颜色,以呈现空白空间的外观。

  • 对于正值,它会绘制一个宽度为白色的条,ABS(MIN(A:A))然后是宽度为绿色的条A1
  • 对于负值,它绘制一个宽度为白色的条A1-MIN(A:A),然后绘制一个宽度为长度的红色条ABS(A1)
  • 它会自动归一化并调整为适当的宽度MAX(A:A)-MIN(A:A)

推荐阅读