Excel 2016计算会计年度

时间:2018-08-21 20:34:46

标签: excel-vba excel-formula

会计年度开始于7月1日至6月30日,我需要计算并显示两个日期之间的会计年度数。

例如:01/01 / 2018-12 / 31/2018。结果(YYYY-YYYY)应该为2个会计年度:

  • 2017-2018 (2017年7月1日至2018年6月30日)
  • 2018-2019 (2018年7月1日至2019年6月30日)

很容易计算两个日期之间是否只有2个会计年度,但是使用create or replace function check_stuff() returns trigger as $$ declare original record; ... begin original := new; ... if NEW.name ... then raise warning 'weird name detected'; end if if NEW.address ... then raise warning 'weird address detected'; end if ... return original; exception when whatever then raise notice '% % % : % %', TG_NAME, TG_WHEN, TG_OP, SQLERRM, SQLSTATE; return original; end; $$ language plpgsql create trigger check_stuff_trigger after insert or update on important_table for each row execute procedure check_stuff(); =IF(StartDate<DATE(YEAR(StartDate), 7,1),CONCATENATE(YEAR(StartDate)-1, "-", YEAR(StartDate)), CONCATENATE(YEAR(StartDate), "-", YEAR(StartDate)+1))

但是,如果有两个以上的会计年度,我该如何捕获?例如:01/01/2018-09/20/2019

我希望将会计年度输入表格范围,如果会计年度超过2个,则自动插入新行。我正在寻找公式或VBA解决方案。

1 个答案:

答案 0 :(得分:1)

我上次要做的是针对特定报告,其中日期写在单元格中:

dim s as long, e as long
if month(cells(1,1).value) >= 7 AND day(cells(1,1).value) >= 1 Then
    s = year(cells(1,1).value)+1
else
    s = year(cells(1,1).value)
end if
if month(cells(2,1).value) >= 7 AND day(cells(1,1).value) >= 1 Then
    e = year(cells(1,1).value)+1
else
    e = year(cells(1,1).value)
end if
'FY range:
cells(3,1).value = "FY" & s & "-FY" & e

为您重新编码,未经测试