【问题标题】:List all the fiscal years and quarters from two dates列出两个日期的所有会计年度和季度
【发布时间】:2016-10-14 07:56:53
【问题描述】:

下午好!

我正在使用 excel,我想知道是否有办法获取两个特定日期之间涵盖的所有财政年度和季度的列表。

我有奖励开始和结束日期字段。例如:

start date: 7/6/2012
end date: 10/7/2016

有没有什么方法可以得到涵盖的所有财政年度和季度的输出?像这样:

FY13 Q1
FY13 Q2, FY13 Q3, FY13 Q4, FY14 Q1, FY14 Q2, FY14 Q3, FY14 Q4, FY15 Q1, FY15 Q2, 
FY15 Q3, FY15 Q4, FY16 Q1, FY16 Q2, FY16 Q3, FY16 Q4, FY17 Q1

【问题讨论】:

  • 您可能需要创建一个包含每个会计年度开始和结束的列表,然后添加一个列,将开始和结束与给定日期进行比较,返回类似“IN”、“OUT”或“Part IN”取决于结果
  • 无论如何我都看不到使用没有辅助列或行的公式来执行此操作;或数组和某种类型的数组连接。您使用的是什么版本的 Excel?如果您没有具有TEXTJOIN() 的 Excel,VBA 是一个可行的选择吗?最后,请分享您到目前为止所做的事情。请记住,SO 不是一个代码编写服务,而是一个论坛,可以针对您的代码中的错误获得有针对性的帮助。

标签: excel excel-formula


【解决方案1】:

让我们首先建立以下基于财政年度结束的月\年-季关系:

假设开始日期和结束日期位于 B2:C3 并且财政年度结束时的结果位于 C5:F25,请输入以下公式:

财政年度结束 - 3 月

C7:

=IF($C$3<$C$2,"!Err",
CONCATENATE("FY",
LOOKUP(MONTH($C$2),{1,4},{0,1})+TEXT($C$2,"yy"),
" Q",LOOKUP(MONTH($C$2),{1,4,7,10},{4,1,2,3})))

C8:C25:

=IF(OR(EXACT(C7,""),
EXACT(C7,
CONCATENATE("FY",
LOOKUP(MONTH($C$3),{1,4},{0,1})+TEXT($C$3,"yy"),
" Q",LOOKUP(MONTH($C$3),{1,4,7,10},{4,1,2,3})))),"",
CONCATENATE("FY",
MID(C7,3,2)+IF(RIGHT(C7,1)-4=0,1,0),
" Q",CHOOSE(RIGHT(C7,1),2,3,4,1)))

财政年度结束 - 6 月

D7:

=IF($C$3<$C$2,"!Err",
CONCATENATE("FY",
LOOKUP(MONTH($C$2),{1,7},{0,1})+TEXT($C$2,"yy"),
" Q",LOOKUP(MONTH($C$2),{1,4,7,10},{3,4,1,2})))

D8:D25:

=IF(OR(EXACT(D7,""),
EXACT(D7,
CONCATENATE("FY",
LOOKUP(MONTH($C$3),{1,4},{0,1})+TEXT($C$3,"yy"),
" Q",LOOKUP(MONTH($C$3),{1,4,7,10},{3,4,1,2})))),"",
CONCATENATE("FY",
MID(D7,3,2)+IF(RIGHT(D7,1)-4=0,1,0),
" Q",CHOOSE(RIGHT(D7,1),2,3,4,1)))

财政年度结束 - 9 月

E7:

=IF($C$3<$C$2,"!Err",
CONCATENATE("FY",
LOOKUP(MONTH($C$2),{1,10},{0,1})+TEXT($C$2,"yy"),
" Q",LOOKUP(MONTH($C$2),{1,4,7,10},{2,3,4,1})))

E8:E25:

=IF(OR(EXACT(E7,""),
EXACT(E7,
CONCATENATE("FY",
LOOKUP(MONTH($C$3),{1,10},{0,1})+TEXT($C$3,"yy"),
" Q",LOOKUP(MONTH($C$3),{1,4,7,10},{2,3,4,1})))),"",
CONCATENATE("FY",
MID(E7,3,2)+IF(RIGHT(E7,1)-4=0,1,0),
" Q",CHOOSE(RIGHT(E7,1),2,3,4,1)))

财政年度结束 - 12 月

F7:

=IF($C$3<$C$2,"!Err",
CONCATENATE("FY",
TEXT($C$2,"yy"),
" Q",LOOKUP(MONTH($C$2),{1,4,7,10},{1,2,3,4})))

F8:F25:

=IF(OR(EXACT(F7,""),
EXACT(F7,
CONCATENATE("FY",TEXT($C$3,"yy"),
" Q",LOOKUP(MONTH($C$3),{1,4,7,10},{1,2,3,4})))),"",
CONCATENATE("FY",
MID(F7,3,2)+IF(RIGHT(F7,1)-4=0,1,0),
" Q",CHOOSE(RIGHT(F7,1),2,3,4,1)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多