【问题标题】:Excel Graph with dynamic x-axis properties具有动态 x 轴属性的 Excel 图表
【发布时间】:2021-07-03 00:55:15
【问题描述】:

在 Excel 中,我有一个目录和该表的图表,其中 X 轴可以随着开始和结束而变化。如何动态设置 X 轴范围,使其不总是使用下面的整个表格?我目前不得不进入图表设置并手动更改它..

这是我的数据表:

我刚刚添加的 min_max 列,因为我认为它可能有用。

根据组合框选择,“日历周”选择会有所不同。所以我希望图表适应日历周范围,而不是右边有巨大的差距。 偏移公式如何?我试过了,但没有成功。

谢谢。

【问题讨论】:

  • 尝试使用偏移函数命名范围以根据条件选择动态范围。在为图表选择数据时,您可以使用命名范围而不是手动更改它。此外,最好提供一个用于创建图表的示例数据。
  • 在开发人员选项卡中记录一个宏,您可以在其中创建和个性化您想要的图表外观。停止记录后,在模块中您可以看到您执行的步骤,并可以尝试重现它们以及您必须更改单个值的位置。如果你已经有一些代码,你可以向我们展示你已经做了什么,我们可以帮助你。

标签: excel vba dynamic-programming


【解决方案1】:

命名范围将有如下帮助

first create named ranges as below                              
Name                Result      Name Range Formula                      
FirstNonBlankRow_ColB       4       =INDEX(ROW(Sheet1!$B$2:$B$13),MATCH(TRUE,INDEX((Sheet1!$B$2:$B$13<>0),0),0))                        
FirstNonBlankCellRef_ColA   Range A4    =OFFSET(Sheet1!$A$1,INDEX(ROW(Sheet1!$B$2:$B$13),MATCH(TRUE,INDEX((Sheet1!$B$2:$B$13<>0),0),0))-1,,1,1)                     
ChartData_ColA          Range A4 to A8  =OFFSET(FirstNonBlankCellRef_ColA,,,COUNTA(Sheet1!$B$2:$B$13),1)                        
ChartData_ColB          Range B4 to B8  =OFFSET((FirstNonBlankCellRef_ColA),,1,COUNTA(Sheet1!$B$2:$B$13),1)                     
ChartData_ColC          Range C4 to C8  =OFFSET((FirstNonBlankCellRef_ColA),,2,COUNTA(Sheet1!$B$2:$B$13),1)                     
ChartData_ColD          Range D4 to D8  =OFFSET((FirstNonBlankCellRef_ColA),,3,COUNTA(Sheet1!$B$2:$B$13),1)                     
ChartData_ColE          Range E4 to E8  =OFFSET((FirstNonBlankCellRef_ColA),,4,COUNTA(Sheet1!$B$2:$B$13),1)                     

Then add these names rangs in chart "Select Data" box like                              
Series Name =Sheet1!$B$1            Horizontal (Category) Axis Labels               =Book1!ChartData_ColA
Series Values   =Book1!ChartData_ColB                           

【讨论】:

  • 这将自动更新图表数据,忽略列 B 到 E 中的空白行 .. 确保在命名范围中绝对引用单元格范围而不是相对 .. 像 $A$!而不仅仅是 A1 .. please accept/ upvote if this answers your question
  • ..只是我必须在两个公式中使用 "" 而不是 0,我猜这会影响我在尾部的范围。
  • Caqn 你解释一下 FirstNonBLockCellRef_ColA 的 -1,1,1 部分吗?
  • @KingsleyObeng ...如果您看到偏移函数..它从一个范围开始..然后从那里偏移..在这种情况下,它从 A1 开始,然后用索引偏移 4 行函数..然后它会去A5..但是我们需要减去1才能让它去A4图表数据应该开始的地方..结束1,1代表偏移的宽度和高度..在这种情况下我们只想要一个单元格 A4 因此它们都是 1,1
  • 谢谢。如果公式中有空格,COUNTA(XX,1) 是否可能不起作用?使用 COUNTIF(XX,>0) 我解决了这个小问题;)
猜你喜欢
  • 2016-02-16
  • 2018-06-24
  • 2015-10-18
  • 2015-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多