Excel-动态图表x轴-忽略没有数据的x类别

Excel-动态图表x轴-忽略没有数据的x类别,excel,dynamic,charts,vba,Excel,Dynamic,Charts,Vba,我有一个预定义的x标签列表,例如一年中的月份。 我希望动态地从excel绘图中排除其中一些,例如,如果某些y值为空、零或错误 我尝试过的事情: 如果我使用了(如果数据不正确,则将xlabel更改为blank或NA()) 过程中,Excel仍然为空白或αn/a x标签留出空间-见图像。这是第二个投票最多的答案,但并不完全符合我的要求。。。不幸的是,在隐藏和空单元格设置中没有“无间隙”选项 如果我过滤掉Y值满足拒绝条件的行,我会得到我想要的图表,但是当Y值被其他地方的计算更改时,过滤器不会自

我有一个预定义的x标签列表,例如一年中的月份。 我希望动态地从excel绘图中排除其中一些,例如,如果某些y值为空、零或错误

我尝试过的事情:

  • 如果我使用了(如果数据不正确,则将xlabel更改为blank或NA()) 过程中,Excel仍然为空白或αn/a x标签留出空间-见图像。这是第二个投票最多的答案,但并不完全符合我的要求。。。不幸的是,在隐藏和空单元格设置中没有“无间隙”选项

  • 如果我过滤掉Y值满足拒绝条件的行,我会得到我想要的图表,但是当Y值被其他地方的计算更改时,过滤器不会自动更新,即它不是动态的。轴心图是相同的
  • 我无法让公式化命名的ranges()执行我想要的操作-公式将返回类似于“Jan,FALSE,Mar,Apr”的内容,而不是“Jan,Mar,Apr”,我们最终会遇到与上图相同的问题

非VBA解决方案首选=)

伙计,似乎仍在寻找非VBA解决方案,因为解决方案在于隐藏所述行。 然而,如果你执意寻找非vba的解决方案,那么这里是非常粗糙的解决方案- 假设这是数据(C3:I15)和下面描述的helper列-

  • 辅助列(hC1)具有公式

    =如果(ISNUMBER(D4),1,“”)

  • hC2有一个公式

    =IFERROR(E4*行(),“”)

  • hC3有一个公式

    =小型($F$4:$F$15,第()行-3)

    • X有公式
    =如果(ISNUMBER(G4),索引(C4:C15,匹配(G4,F4:F15,0)),“”)

    • Y有公式
    =VLOOKUP(H4,C4:D15,2,假)

进入第一行后,向下拖动所有公式

现在您可以从连续数据绘制图表-


谢谢,我几乎可以做到这一点了-是否可以将其推广到允许多个连续空白处?@arthuritus根据您的建议编辑了之前的答案,将其推广到允许多个连续空白处此解决方案似乎需要每次更改图表的源数据范围“空白”类别更改。非自动。