Vba 基于今天返回会计月';s date(或)VLOOKUP返回合并单元格的内容
我有一个基于日期范围(C1=startdate,D1=enddate)动态提取数据的工作簿。当用户进入工作簿时,Excel需要选中TODAY(),然后用该会计月的第一天(可以是该月的任何数字天)填充C1中的startdate。因此,如果用户在2014年5月2日输入工作簿,则应在C1中填充起始日期,即2014年4月30日(即财政月开始的时间) 我在单独的工作表中设置了会计日期,以供参考(如果需要,请参见图)。在我的示例中,如果今天()等于2014年5月2日(在图中,红方块是5月1日),我不确定如何从左侧的网格样式返回2014年4月30日。我尝试在右侧设置一个更传统的表,并使用VLOOKUP,但当Excel在N列中找到2014年5月2日时,它会将其旁边的列读取为0,而不是返回整个合并单元格的值Vba 基于今天返回会计月';s date(或)VLOOKUP返回合并单元格的内容,vba,excel,excel-formula,vlookup,Vba,Excel,Excel Formula,Vlookup,我有一个基于日期范围(C1=startdate,D1=enddate)动态提取数据的工作簿。当用户进入工作簿时,Excel需要选中TODAY(),然后用该会计月的第一天(可以是该月的任何数字天)填充C1中的startdate。因此,如果用户在2014年5月2日输入工作簿,则应在C1中填充起始日期,即2014年4月30日(即财政月开始的时间) 我在单独的工作表中设置了会计日期,以供参考(如果需要,请参见图)。在我的示例中,如果今天()等于2014年5月2日(在图中,红方块是5月1日),我不确定如何
假设您像我在英国工作的公司一样使用财务周,您可以在下图中创建一个参考表: 这将生成以下数据(手动添加的会计月和季度)。列A使用WeekNum将每个会计周的开始日期更改为日历周编号。C2手动设置为会计年度的第一天 从这里可以使用以下公式:
=VLOOKUP(WEEKNUM(TODAY(),1),A:F,2,FALSE)
返回会计周或会计月的列。如果您想要会计月开始,您可以将其添加为列,或者使用下面的从月号和年开始生成它
"Year Start"+(28*("Month Number"-1))
更新:
如果计算会计周数和日历周数之间的差值,则可以将WeekNum结果调整为“应会计周”。这将减少表中所需的逻辑。我已取消右侧单元格的合并,然后将以前合并的每个月的日期向下拖动到同一区域。这是可行的,但我认为应该有更好的方法。你看过workday()函数吗?