我有一张带有折线图的工作表,现在我正在尝试做一些可能非常简单的事情:
我想使用单元格中的值向该图表添加一条垂直线。
所以我有这个折线图
和一个日期为 2016/01/01 的单元格,我想在单元格日期的所有图表中都有一条垂直线
我不知道该怎么做...
我想使用“购买日期”显示一条垂直线
我遇到了同样的问题,并创建了一个解决方案来克服 Google 表格图表的限制。
主要思想是在图表中创建一条额外的线,只有两个点,都带有所需的日期。第一个点的值为 0,最后一个点具有 Y 轴的最大值。这样,线条始终覆盖图表的整个高度。
请注意,有必要在 X 轴上添加两个新值(在工作表上以蓝色突出显示)。不要担心它们重复的事实。谷歌表格正确处理它。
这些值可以放在列表的开头。这样,可以在它们的末尾添加新值。
此解决方案可以在: “[GoogleSheets] 图表中的动态垂直线”中查看
要更改红线的位置,只需在“购买日期”(黄色单元格)中选择不同的值。
我将我的第一个解决方案与dimo414建议的解决方案合并,并创建了一个具有两种变体的新解决方案。
在以前版本的电子表格中,只有两个点可以绘制垂直线。
在新版本中,插入了第三个点以显示直线和实际曲线之间的交点。还创建了一个新列,其中仅包含新点的标签。
结果是:
这些更改可以在SpreadSheet的“Dashboard_v2”和“Dashboard_v3”表的绿色背景中看到。
为了确定新点的坐标,使用了两种方法:
如果目标是仅突出属于原始数据集的交点,则只需 VLOOKUP() 数据集中的日期。
给定点 [x1,y1]、[x2,y2] 和 x 的值(其中 x1 <= x <= x2),可以使用以下公式找到插值点 [x,y]:
y=(y2-y1)*(x-x1)/(x2-x1)+y1
虽然这个公式很容易实现,但找到正确的插值点更具挑战性,需要一点创造力。
起初,我想使用 JS 脚本来让事情变得更简单,但决定只使用内置函数。
顺便说一句,欢迎使用不同的方法来查找 [x1,y1] 和 [x2,y2]。
为了让事情更容易理解,每个点坐标都在不同的单元格中确定(参见 L2:M5),交点在 L6:M7 中。
当然,可以将它们全部加入一个单元格,但我认为这会更难理解。
最后,更详细的说明:根据上述定义,插值公式仅在 (x1 <= x <= x2) 时有效。因此,单元格 C2 和 M6 都具有限制“x”值的保护。
一种方法是在 x 轴上添加标签。
例如,这是一个根据日期绘制体重的图表,标签为“作弊日”,日期为 2021-07-21

对于数据:
| 日期 | 标签 | 重量(公斤) | 体重目标(公斤) |
|---|---|---|---|
| 2021-07-19 | 83.85 | 75 | |
| 2021-07-20 | 84.55 | 75 | |
| 2021-07-21 | 愚人节 | 83.8 | 75 |
| 2021-07-22 | 84.95 | 75 | |
| 2021-07-23 | 83.75 | 75 |
转到编辑图表>设置> 在X 轴下 > 单击“日期”列旁边的 ••• >添加标签> 选择“标签”列作为标签。
您的图表编辑器>设置应如下所示:

据我所知,没有办法在 Google 表格中的图表中添加垂直标记线。在许多情况下可能“足够好”的一个选项是“将注释添加到数据点”,然后使用“格式化数据点”使该点更加明显。这是您的电子表格中的一个示例:
不幸的是,这种方法的一个限制是您只能在图表显示的数据集中标记数据点。在您的情况下,您想用线条标记的日期不在数据集中,因此这不会直接起作用。您也许可以引入一个仅包含该日期的单独数据系列,然后向该数据点添加一个注释,但我还没有对其进行足够的修改以使其正常工作。