Excel:周期性跳过单元格的动态范围(用于创建动态图表)
Excel: Dynamic Ranges with periodically skipped cells (to create Dynamic Charts)
我努力 Excel 为了每个月生成一个用水量监测。
Objective:创建一个每月自动添加数据的图表。
问题:我的 table 并不常见。我想要一个具体的配置。我有一个年度设置(见屏幕截图):
- 第一行:年份 (Y):年度统计数据(总和)
- 一月(年)
- 2 月(年)
- 一年中的每个月 (Y)。
- 第 14 行:年份 (Y+1)(下一年的统计数据)
- 15 日:一月 (Y+1)
有了这个特殊的 table,我想知道是否有任何方法可以定义每个月的动态范围并跳过年度统计行。
我想要一个包含每年几个月的连续图表...
我知道在 Excel 中存在诸如 "OFFSET" 之类的功能,但我很难在 13 上自动跳过一行。
我希望我的英语不是那么糟糕,并且我已经足够清楚,可以得到您宝贵的帮助!
提前致谢!
截图
table 在选择要放入图表中的每月数据时要跳过年度行
你可以在这里看到我想要得到的结果:每个月自动添加的图表。
你的英语很好。可能有更好的解决方案,但如果您的数据现在已修复且不再添加,为什么不使用另一个(可能隐藏的)列作为图表数据的来源?
例如,您可以分两步创建该列。首先,创建一个列,其中包含您希望在图表中按此顺序包含的数据的地址。
例如,如果您的数据位于单元格 C1,C2,...
中,并且您想在每 12 行后跳过一行,您可以像这样创建列 E
:
=CONCAT("C",ROW()+QUOTIENT(ROW()-1,12))
(将相同的公式放入 E
的所有行中,只需复制并粘贴即可)
这将以连续的方式在列 E
中创建单元格的名称:
C1, C2, ..., C12, C14, C15, ..., C25, C27, ...
然后在另一列中,例如G
,将以下公式输入到第一行,然后将其复制到G
的所有其他行:
=INDIRECT(E1)
(复制时会自动引用E2
、E3
等)
现在您的列 G
包含来自列 C
的连续数据,每 12 行后跳过一行,您可以使用它来创建图表。
另一种解决方案仅使用一个额外的列(相同的想法,但更简单),使用 INDEX() 函数。创建一个列 E,在所有行中包含以下公式:
=INDEX($C:$C,ROW()+QUOTIENT(ROW()-1,12))
它会做同样的事情 - 将 C1 的内容检索到 E1,C2 int E2,等等。C12 到 E12,C14 到 E13,等等。
在您的特定情况下,当数据从 C4 而不是 C1 开始时,您将使用:
=INDEX($C:$C,ROW()-3+QUOTIENT(ROW()-4,12))
如果您还希望在每次添加值时自动更新图表,一种方法就是这样。您可以定义一个动态范围:
在"Formulas"菜单select"Name Manager"中,点击"New...",给它起个名字,比如"chartrange",进入指:行输入此公式:
=OFFSET(Sheet1!$E,0,0,COUNT(Sheet1!$E:$E00),1)
这将定义从 E5 到该列中有一些非空值的动态范围。然后用鼠标右键单击您的图表 - Select 数据...单击左侧的编辑...按钮,然后将名称 "chartrange" 输入到系列值:行。
我在这里发布了一个示例:chart with dynamically added data
另请参阅:
我努力 Excel 为了每个月生成一个用水量监测。
Objective:创建一个每月自动添加数据的图表。
问题:我的 table 并不常见。我想要一个具体的配置。我有一个年度设置(见屏幕截图):
- 第一行:年份 (Y):年度统计数据(总和)
- 一月(年)
- 2 月(年)
- 一年中的每个月 (Y)。
- 第 14 行:年份 (Y+1)(下一年的统计数据)
- 15 日:一月 (Y+1)
有了这个特殊的 table,我想知道是否有任何方法可以定义每个月的动态范围并跳过年度统计行。 我想要一个包含每年几个月的连续图表...
我知道在 Excel 中存在诸如 "OFFSET" 之类的功能,但我很难在 13 上自动跳过一行。
我希望我的英语不是那么糟糕,并且我已经足够清楚,可以得到您宝贵的帮助!
提前致谢!
截图
table 在选择要放入图表中的每月数据时要跳过年度行
你可以在这里看到我想要得到的结果:每个月自动添加的图表。
你的英语很好。可能有更好的解决方案,但如果您的数据现在已修复且不再添加,为什么不使用另一个(可能隐藏的)列作为图表数据的来源?
例如,您可以分两步创建该列。首先,创建一个列,其中包含您希望在图表中按此顺序包含的数据的地址。
例如,如果您的数据位于单元格 C1,C2,...
中,并且您想在每 12 行后跳过一行,您可以像这样创建列 E
:
=CONCAT("C",ROW()+QUOTIENT(ROW()-1,12))
(将相同的公式放入 E
的所有行中,只需复制并粘贴即可)
这将以连续的方式在列 E
中创建单元格的名称:
C1, C2, ..., C12, C14, C15, ..., C25, C27, ...
然后在另一列中,例如G
,将以下公式输入到第一行,然后将其复制到G
的所有其他行:
=INDIRECT(E1)
(复制时会自动引用E2
、E3
等)
现在您的列 G
包含来自列 C
的连续数据,每 12 行后跳过一行,您可以使用它来创建图表。
另一种解决方案仅使用一个额外的列(相同的想法,但更简单),使用 INDEX() 函数。创建一个列 E,在所有行中包含以下公式:
=INDEX($C:$C,ROW()+QUOTIENT(ROW()-1,12))
它会做同样的事情 - 将 C1 的内容检索到 E1,C2 int E2,等等。C12 到 E12,C14 到 E13,等等。
在您的特定情况下,当数据从 C4 而不是 C1 开始时,您将使用:
=INDEX($C:$C,ROW()-3+QUOTIENT(ROW()-4,12))
如果您还希望在每次添加值时自动更新图表,一种方法就是这样。您可以定义一个动态范围:
在"Formulas"菜单select"Name Manager"中,点击"New...",给它起个名字,比如"chartrange",进入指:行输入此公式:
=OFFSET(Sheet1!$E,0,0,COUNT(Sheet1!$E:$E00),1)
这将定义从 E5 到该列中有一些非空值的动态范围。然后用鼠标右键单击您的图表 - Select 数据...单击左侧的编辑...按钮,然后将名称 "chartrange" 输入到系列值:行。
我在这里发布了一个示例:chart with dynamically added data
另请参阅: