所以我有一个Excel文档。每张工作表都包含该月特定位置的数据。这意味着对于每个月的工作表,特定项目的特定值始终位于同一单元格中。
我想要做的是在文档的开头或结尾有一个工作表,让用户指定他们想要比较多少个月的数据,然后它可以检查该几个月范围内的特定工作表(因为今天是5月27日,如果我指定6个月,它可以获取11月23日、12月23日、1月24日、2月24日、3月24日、4月24日和5月24日的数据,然后使用这些月份的数据绘制图表可以通过数据直观地逐月比较每个项目。
我确信有办法做到这一点,但我现在正在画空白。我最初认为我可以从每张纸上的单元格 A1 开始,作为每个月第一个月的日期,但后来试图找出从那里开始的最佳方法。
编辑:这里有一些示例数据,显示了数据在我正在处理的实际电子表格中的布局方式,以举例说明如何需要提取数据。
因此,可能有更多更好的方法来做到这一点,但是这是我尝试过并想出的:
• 单元格中使用的公式B4
在单元格中输入公式之前,使用以下
B4
命令创建一个定义的名称并将其命名为:Name Managers
SHEETNAME
• 使用以下公式替代上述公式
TEXTAFTER()
:SHEETNAME()
是一个自定义函数,每当在工作簿中添加工作表时,它都会使用Excel Macro 4.0
函数立即添加工作表。GET.WORKBOOK()
REDUCE()
的帮助(注意:对于和我没有显示,因为您可以按照步骤自己创建,基本上您需要将函数中的范围从更改为。 )INDIRECT()
Customers
Product
Sales
INDIRECT()
C6:D12
C17:D25
REDUCE()
列出该编号的所有记录。基于单元格的月份B2
加上当前月份。Name Manager
一个 isCustomer
和另一个中创建了两个更定义的名称MonthsDays
,它的作用是排除任何0
值并返回直到最后一行数据。•
Customers
用来:•
MonthsDays
用来:Insert
,2D Column
根据单元格 >kbd>B4 中的数据创建一个图表Chart
选项ChartDesign
卡并选择Select Data
Legend Entries Series
to='Test Data.xlsx'!Customers
和Horizontal Axis Lables
to='Test Data.xlsx'!MonthsDays
注意:始终建议避免易失性函数,因为它们会减慢工作功能的速度,
Excel
并且每当任何打开的工作簿发生更改时都会不断重新计算,因此我在下面发布了替代方案。更重要的是,由于上述函数使用Excel Macro 4.0
工作簿需要保存为.xlsm
或.xlsb
.公式为MS365独家。• 替代方法一:以下命令将返回与以下内容相同的输出:
REDUCE()
• 替代方法二:如果您知道有固定张数且起始月份已确定,那么也可以使用此方法,这不涉及
Excel Macro 4.0
也没有任何Volatile
功能。该工作簿可以从这里下载:链接