我目前正在创建一个动态图表,该图表根据导入到 Excel 文件中的信息每月更新一次。
表格已使用信息进行更新,其中图表应该仅根据特定单元格显示当前月份,如附加的 Excel 文件中所示。
示例文本“期间 01JAN18 0001 至 31JAN18 2259”
图表需要做的是将文本与月份匹配,因此,如果文本显示“JAN”,则应该获取一月份的数据,如果文本显示“FEB”,则应该获取二月份的数据。
目前,图表显示每个月的数据,然后我必须过滤掉当前月份和年初至今的数据。
我希望这能正确解释这一点:)
答案1
下面的答案依赖于文本在B25
当前月份的 3 个字母名称之前始终有 9 个字符。
为了使图表动态化,您可以添加一个始终包含当前月份数据的新列,并将其用作图表的 y 值。
此表达式: MID(B$25,10,3)
用于MID()
从中获取当前月份的 3 个字母名称B25
。它从位置 10 开始并取接下来的 3 个字母。因此请参阅上面的警告。
然后,此表达式将通配符附加到月份名称,并在以下位置搜索 3 个字母的月份名称(加上其他任何内容)Row 1
: MATCH(MID(B$25,10,3)&"*",B$1:M$1,0)
它返回匹配的月份的列号。
INDEX()
最后,将列号表达式与行号一起用于公式中,以获取当前月份的第一个数据点。此公式:
=INDEX(B$2:M$21,ROW(O1),MATCH(MID(B$25,10,3)&"*",B$1:M$1,0))
从 向下填充O1
,填充Column O
中指定的月份的数据B25
。下面屏幕截图中显示的是 9 月。
O23 有这个公式:=INDEX(B$1:M$1,,MATCH(MID(B$25,10,3)&"*",B$1:M$1,0))
让图表图例显示当前月份的名称。
要更改图表,只需选择它,然后将 y 数据的选择框拖到 上Column O
。此外,使用源数据对话框使系列的名称指向O23
。