我已经研究了一段时间,似乎找不到合适的编码方法。
目标:获取当前跨越三年的月度回报列表(这是一个自动化列表,因此它将持续增加数月),并使用函数查找MTD,QTD和YTD,以便使流程自动化。
问题:我已经尝试过使用OFFSET函数,COUNT,IF语句的不同版本,并且找不到正确编码该函数的方法。
注意:这是用于库存数据/收益报告
请澄清一下,我知道如何手动执行此操作,但想自动化该过程:)使用VBA会很高兴,但如果可能的话,希望坚持使用简单的功能...
我非常乐意将WS通过电子邮件发送给某人。非常感谢!
答案 0 :(得分:0)
如果您想保持简单并避免使用vba,这里是一个建议 数据表的显示方式很重要。 我假设几个月下来,“月度回报”只有一栏?
在单独的区域/工作表上,在月份旁边的列中为其设置值。即
Jan 1
Feb 2
Mar 3
Apr 4
...
Dec 12
然后在下拉菜单中,您可以选择当月。 因此,如果是7月,则可以选择7月。 从这里开始,执行vlookup / indexmatch来获取该月的数字,因此Jul将会是7 从这里开始,MTD很容易。 从年初到当前月份进行补偿
=offset ([start point],[month number],[columns])
=OFFSET($D$1,$C$21,0)
起点将在Jan上方一行,这样,当选择Jan时,它将落在Jan上。 您将从先前所说的获得的月份数 和列将取决于您放置它的方式
年初至今,您将执行上述操作,但总和
=sum(B3:offset ([start point],[month number],[columns]))
=SUM(D2:OFFSET($D$1,C21,0))
QTD只需绘制总和就将是最简单的,因为它永远不会改变 因此,将Q1,Q2,Q3和Q4设置为前缀。然后查找他们。 但是,如果要通过公式查看最近的季度。在月份编号列表上,添加一个新列,该列表示当前季度。然后
Jan 1 1
Feb 2 1
Mar 3 1
Apr 4 2
...
Dec 12 4
应该读取这样的公式
=SUM(
OFFSET([start point],(INDEX([month number table],MATCH([month],[month list],0),3)-1)*3,0):
OFFSET([start point],INDEX(month number table],MATCH([month],[month list],0),2),0))
=SUM(
OFFSET($D$2,(INDEX($F$2:$H$13,MATCH($C$20,$F$2:$F$13,0),3)-1)*3,0):
OFFSET($D$1,INDEX($F$2:$H$13,MATCH($C$20,$F$2:$F$13,0),2),0)
)
您要做的是在季度开始时查找月份,然后求和到当前月份。
关于结尾的这一点
OFFSET([start point],(INDEX([month number table],MATCH([month],[month list],0),3)-1)*3,0):
您正在找到月份季度索引号(1,2,3,4)并将其乘以3。您想要在乘以三之前减去一的原因是因为您想要四分之一的起点,因此从jan开始前进,它将是0,然后添加一行以将起点定为Jan。 在十月到十二月中,这将是(4-1)=3。3x3= 9,这将是十月,以十月为起点。根据需要进行修改。
黄色部分是您的实际信息显示的形式
绿色部分是您的查找区域
蓝色区域是您要查找的信息,其查找内容的低位显示为