Home » Quarterly Payment Grouping

Quarterly Payment Grouping

Today’s challenge is contributed by 🇰🇷 Taeyong Shin Divide the payments among different quarters / months. Have a total amount line at the end. This challenge totals the amount from the 26th of the previous month to the 25th of the current month.

📌 Challenge Details and Links
ExcelBI Excel Challenge Number: 676
Challenge Difficulty: ⭐️
📥Download Sample File
📥Link to the solutions on LinkedIn

Solving the challenge of Quarterly Payment Grouping with Power Query

Power Query solution 1 for Quarterly Payment Grouping, proposed by Kris Jaganah:
let
  A = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  B = Table.AddColumn(
    A, 
    "Ans", 
    each [
      a       = [Date], 
      b       = if Date.Day(a) < 26 or Date.Month(a) = 12 then a else Date.AddMonths(a, 1), 
      Month   = Text.Start(Date.MonthName(b), 3), 
      Quarter = "Q" & Text.From(Date.QuarterOfYear(b))
    ]
  ), 
  C = Table.ExpandRecordColumn(B, "Ans", {"Quarter", "Month"}), 
  D = Table.Group(C, {"Quarter", "Month"}, {"Payment", each List.Sum([Payment])}), 
  E = D & Table.Group(D, {}, {{"Quarter", each "Total"}, {"Payment", each List.Sum([Payment])}})
in
  E
Power Query solution 2 for Quarterly Payment Grouping, proposed by Vida Vaitkunaite:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Fx = each Date.AddDays(_, Date.DaysInMonth(_) - 25), 
  Group = Table.Group(
    Source, 
    "Date", 
    {
      {"Quarter", each "Q" & Text.From(Date.QuarterOfYear(Fx(List.Min([Date]))))}, 
      {"Month", each DateTime.ToText(Fx(List.Min([Date])), "MMM")}, 
      {"Payment", each List.Sum([Payment])}
    }, 
    0, 
    (x, y) => Number.From(Date.Month(Fx(y)) <> Date.Month(Fx(x)))
  )[[Quarter], [Month], [Payment]], 
  Final = Group
    & Table.FromRows({{"Total", null, List.Sum(Group[Payment])}}, Table.ColumnNames(Group))
in
  Final
Power Query solution 3 for Quarterly Payment Grouping, proposed by Meganathan Elumalai:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Transform = Table.TransformColumns(
    Source, 
    {{"Date", each if Date.Day(_) > 25 then Date.EndOfMonth(_) + Duration.From(1) else _}}
  ), 
  Group = Table.Group(
    Transform, 
    "Date", 
    {
      {
        "New", 
        each {
          "Q" & Text.From(Date.QuarterOfYear([Date]{0})), 
          Text.Start(Date.MonthName([Date]{0}), 3), 
          List.Sum([Payment])
        }
      }
    }, 
    0, 
    (x, y) => Value.Compare(Date.MonthName(x), Date.MonthName(y))
  ), 
  SelectYear = Table.SelectRows(Group, each Date.Year(List.Min(Group[Date])) = Date.Year([Date]))[
    New
  ], 
  Result = Table.FromRows(
    SelectYear & {{"Total", "", List.Sum(List.Transform(SelectYear, each _{2}))}}, 
    {"Qtr", "Month", "Payment"}
  )
in
  Result
Power Query solution 4 for Quarterly Payment Grouping, proposed by Mihai Radu O:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Custom1 = Table.TransformColumns(
    Source, 
    {
      "Date", 
      (x) =>
        if Date.Day(x) >= 26 and Date.Month(x) < 12 then Date.AddDays(Date.EndOfMonth(x), 1) else x
    }
  ), 
  grup = Table.RemoveColumns(
    Table.Group(
      Custom1, 
      {"Date"}, 
      {
        {"Quarter", each "Q" & Text.From(Date.QuarterOfYear(List.Max([Date])))}, 
        {"Month", each Date.ToText(List.Max([Date]), [Format = "MMM"])}, 
        {"Payment", each List.Sum([Payment])}
      }, 
      GroupKind.Local, 
      (x, y) =>
        let
          q = Value.Compare(Date.QuarterOfYear(x[Date]), Date.QuarterOfYear(y[Date])), 
          m = Value.Compare(Date.Month(x[Date]), Date.Month(y[Date])), 
          z = if q = 0 then m else q
        in
          z
    ), 
    "Date"
  ), 
  Custom2 = [
    v   = List.Sum(grup[Payment]), 
    tr  = {"Total", "", v}, 
    tbl = Table.FromRows(Table.ToRows(grup) & {tr}, Table.ColumnNames(grup))
  ][tbl]
in
  Custom2

Solving the challenge of Quarterly Payment Grouping with Excel

Excel solution 1 for Quarterly Payment Grouping, proposed by Rick Rothstein:
=LET(r,
    A2:A101,
    m,
    SEQUENCE(
        12
    ),
    y,
    YEAR(
        @r
    ),
    HSTACK(TEXT(
        {10,
        28}*m,
        {"Qm",
        "mmm"}
    ),
    SUMIFS(OFFSET(
        r,
        ,
        1
    ),
    r,
    ">"&DATE(y-(m=1),
    m-1,
    25),
    r,
    "<"&DATE(
        y,
        m,
        26
    ))))
With header and footer...
=LET(r,
    A2:A101,
    m,
    SEQUENCE(
        12
    ),
    y,
    YEAR(
        @r
    ),
    h,
    HSTACK(TEXT(
        {10,
        28}*m,
        {"Qm",
        "mmm"}
    ),
    SUMIFS(OFFSET(
        r,
        ,
        1
    ),
    r,
    ">"&DATE(y-(m=1),
    m-1,
    25),
    r,
    "<"&DATE(
        y,
        m,
        26
    ))),
    VSTACK(
        {"Quarter",
        "Month",
        "Payment"},
        h,
        HSTACK(
            "Total",
            "",
            SUM(
                TAKE(
                    h,
                    ,
                    -1
                )
            )
        )
    ))
Excel solution 2 for Quarterly Payment Grouping, proposed by John V.:
=CHOOSECOLS(GROUPBY(TEXT({10,
    30,
    30}*MONTH(EDATE(A2:A101-(MONTH(
        A2:A101
    )=12)-25,
    1)),
    {"Qm",
    "mm",
    "mmm"}),
    B2:B101,
    SUM),
    1,
    3,
    4)
Excel solution 3 for Quarterly Payment Grouping, proposed by 🇰🇷 Taeyong Shin:
=LET(d,A2:A101,n,(d>(EOMONTH(+d,-1)+25))+MONTH(d),m,n-(n=13),CHOOSECOLS(GROUPBY(TEXT(HSTACK(MONTH(m*10),m,m&-1),{"Q0","0","mmm"}),B2:B101,SUM),1,3,4))
Excel solution 4 for Quarterly Payment Grouping, proposed by Kris Jaganah:
=LET(a,A2:A101,b,MONTH(a),c,IF((DAY(a)>25)*(b+1<=12),b+1,b),d,GROUPBY(HSTACK("Q"&ROUNDUP(c/3,0),c,TEXT(c*28,"MMM")),B2:B101,SUM),VSTACK({"Quarter","Month","Payment"},CHOOSECOLS(d,1,3,4)))
Excel solution 5 for Quarterly Payment Grouping, proposed by Timothée BLIOT:
=LET(A,A2:A101,B,IF(DAY(A)>25,DATE(2025,IF(MONTH(A)=12,12,MONTH(A)+1),1),A),C,GROUPBY(HSTACK("Q"&CEILING(MONTH(B)/3,1),TEXT(B,"mmm")),B2:B101,SUM),SORTBY(C,XMATCH(INDEX(C,,2),TEXT(DATE(2025,ROW(1:12),1),"mmm"))))
Excel solution 6 for Quarterly Payment Grouping, proposed by Oscar Mendez Roca Farell:
=LET(d,A2:A101,n,IFERROR(1/(1/MOD(MONTH(d)-(DAY(d)<26)+1,13)),12), g, GROUPBY(HSTACK("Q"&INT((n-1)/3)+1,n&-25),B2:B101,SUM,,1), IFERROR(--g,g))
Excel solution 7 for Quarterly Payment Grouping, proposed by Duy Tùng:
=GROUPBY(
    TEXT(
        MONTH(
            EOMONTH(
                A2:A101-25,
                1
            )
        )*{10,
        29},
        {"Qm",
        "mmm"}
    ),
    B2:B101,
    SUM
)
Excel solution 8 for Quarterly Payment Grouping, proposed by Sunny Baggu:
=LET(
 _d,
     DATE(
         2025,
          SEQUENCE(
              12
          ),
          {25,
          26}
     ),
    
 _a,
     VSTACK(
         DATE(
             2025,
              1,
              1
         ),
          DROP(
              TAKE(
                  _d,
                   ,
                   -1
              ),
               -1
          )
     ),
    
 _b,
     VSTACK(
         DROP(
             TAKE(
                 _d,
                  ,
                  1
             ),
              -1
         ),
          DATE(
              2025,
               12,
               31
          )
     ),
    
 _v,
     MAP(
 _a,
    
 _b,
    
 LAMBDA(x,
     y,
     SUM((A2:A101 >= x) * (A2:A101 <= y) * B2:B101))
 ),
    
 _r,
     HSTACK(
         "Q" & ROUNDUP(
             SEQUENCE(
              12
          ) / 3,
              0
         ),
          TEXT(
              _a,
               "mmm"
          ),
          _v
     ),
    
 VSTACK(
     _r,
      HSTACK(
          {"Total",
           ""},
           SUM(
               _v
           )
      )
 )
)
Excel solution 9 for Quarterly Payment Grouping, proposed by Anshu Bantra:
= to_df(
    REF(
        "A1:B101"
    )
)
df['Date'] = pd.to_datetime(
    df['Date']
)
dates = df['Date']
df['this'] = df['Date'].apply(
    lambda x: x.replace(
        day=25
    )
)

date_condition = (df['Date'].dt.day > 25)

df['Month'] = np.where(
 date_condition,
    
 df['Date'].dt.month+1,
    
 (df['Date'].dt.month)
)
df['Month'] = np.where(df['Month']>12,
     (df['Month']-1)%12+1,
     df['Month'])

df['Year'] = np.where(
 date_condition & (df['Date'].dt.month == 12),
    
 df['Date'].dt.year+1,
    
 df['Date'].dt.year
)

df['Qtr'] = ( ((df['Month']-1)%12) // 3) + 1

df.groupby(
    by=['Year',
     'Qtr',
     'Month']
)
 ['Payment'].sum()
 .reset_index()
 .sort_values(
    by=['Year',
     'Qtr',
     'Month']
)
Excel solution 10 for Quarterly Payment Grouping, proposed by Anshu Bantra:
=LET(
 data_,
     A2:B101,
    
 paym_,
     CHOOSECOLS(
         data_,
          2
     ),
    
 dates_,
     CHOOSECOLS(
         data_,
          1
     ),
    
 this_,
     EOMONTH(
         --M2#,
          -1
     ) + 1 + 24,
    
 mons_,
     IF((dates_ <= this_),
     MONTH(
         this_
     ),
     MONTH(
         this_
     ) + 1),
    
 years_,
     IF((dates_ > this_) * (MONTH(
         dates_
     ) = 12),
     YEAR(
         this_
     ) + 1,
     YEAR(
         this_
     )),
    
 months_,
     IF(
         mons_ > 12,
          MOD(
              mons_,
               13
          ) + 1,
          MOD(
              mons_,
               13
          )
     ),
    
 qtr_,
     CHOOSE(
         MATCH(
             months_,
              {1,
              4,
              7,
              10}
         ),
          "Q1",
          "Q2",
          "Q3",
          "Q4"
     ),
    
 mon_,
     CHOOSE(
         
          months_,
         
          "Jan",
         "Feb",
         "Mar",
         "Apr",
         "May",
         "Jun",
         "Jul",
         "Aug",
         "Sep",
         "Oct",
         "Nov",
         "Dec"
          
     ),
    
 VSTACK(
     
      {"Quarter",
      "Month",
      "Payment"},
     
      DROP(
          GROUPBY(
              HSTACK(
                  years_,
                   mons_,
                   qtr_,
                   mon_
              ),
               paym_,
               SUM,
               ,
               1
          ),
           ,
           2
      )
      
 )
)
Excel solution 11 for Quarterly Payment Grouping, proposed by Pieter de B.:
=LET(
    a,
    A2:A101,
    x,
    IF(
        MONTH(
            a
        )=12,
        12,
        MONTH(
            EOMONTH(
                +a,
                N(
                    DAY(
            a
        )>25
                )
            )
        )
    ),
    g,
    DROP(
        GROUPBY(
            TEXT(
                ROUNDUP(
                    x/{1,
                    3,
                    1},
                    
                )*{1,
                1,
                29},
                {"00",
                "Q0",
                "mmm"}
            ),
            B2:B101,
            SUM
        ),
        ,
        1
    ),
    IF(
        {1,
        2,
        3}=1,
        IF(
            g="",
            "Total",
            g
        ),
        g
    )
)
Excel solution 12 for Quarterly Payment Grouping, proposed by Hamidi Hamid:
=LET(
    x,
    A2:A101,
    s,
    SCAN(
        0,
        x,
        LAMBDA(
            a,
            b,
            LET(
                y,
                IF(
                    DAY(
                        b
                    )>25,
                    MONTH(
                        b
                    )+1,
                    MONTH(
                        b*1
                    )
                ),
                IF(
                    y>12,
                    12,
                    y
                )
            )
        )
    ),
    g,
    GROUPBY(
        s,
        B2:B101,
        SUM,
        ,
        0
    ),
    h,
    HSTACK(
        "Q"&ROUNDUP(
            TAKE(
                g,
                ,
                1
            )/3,
            0,
            5
        ),
        PROPER(
            TEXT(
                "01/"&TAKE(
                g,
                ,
                1
            ),
                "mmm"
            )
        ),
        TAKE(
            g,
            ,
            -1
        )
    ),
    VSTACK(
        h,
        HSTACK(
            "Total",
            "",
            SUM(
                TAKE(
            g,
            ,
            -1
        )
            )
        )
    )
)
Excel solution 13 for Quarterly Payment Grouping, proposed by Eric Laforce:
=LET(d, BYROW(tData[Date],LAMBDA(d,IF(DAY(d)<=25, EOMONTH(d,0),EOMONTH(d,1)))), 
g, GROUPBY(HSTACK(YEAR(d), "Q"&ROUNDUP(MONTH(d)/3,0), MONTH(d),TEXT(d,"mmm")), tData[Payment], SUM,0,0),
VSTACK(HSTACK("Quarter","Month","Payment"), CHOOSECOLS(g,2,4,5), HSTACK("Total","",SUM(CHOOSECOLS(g,5)))))
Excel solution 14 for Quarterly Payment Grouping, proposed by Ankur Sharma:
=LET(c, CHOOSECOLS, Rng, A2:A101,
NewDt, IF(DAY(Rng) <= 25, Rng, DATE(YEAR(Rng), MONTH(Rng) + 1, 1)),
Qtr, "Q" & ROUNDUP(MONTH(NewDt)/3, 0),
A_1, GROUPBY(HSTACK(Qtr, MONTH(NewDt), YEAR(NewDt)), B2:B101, SUM),
A_2, SORT(A_1, 3),
Mnth, IFERROR(TEXT(--(c(A_2, 2) & "-" & c(A_2, 3)), "mmm"), ""),
HSTACK(c(A_2, 1), Mnth, c(A_2, 4)))
Excel solution 15 for Quarterly Payment Grouping, proposed by Meganathan Elumalai:
=LET(a,A2:A101,ed,EDATE(+a,--(DAY(a)>25)),g,DROP(GROUPBY(HSTACK(TEXT(ed,{"yy","mm"}),"Q"&MONTH(MONTH(ed)*10),TEXT(ed,"mmm")),B2:B101,SUM,0,1,,YEAR(ed)=MIN(YEAR(ed))),-1,2),VSTACK(g,HSTACK("Total","",SUM(TAKE(g,,-1)))))
Excel solution 16 for Quarterly Payment Grouping, proposed by Imam Hambali:
=LET(
d,A2:A101,
p,B2:B101,
dd,IF(DAY(d)>25,EDATE(--d,1),d),
f,FILTER(HSTACK(dd,p),YEAR(dd)=2025),
g,GROUPBY(HSTACK(TEXT(TAKE(f,,1),"m")*1,TEXT(TAKE(f,,1),"mmm")),TAKE(f,,-1),SUM,0,0),
t,HSTACK({"Total",""},SUM(TAKE(g,,-1))),
VSTACK({"Quarter","Month","Payment"},HSTACK(ROUNDUP(TAKE(g,,1)/3,0),DROP(g,,1)),t))
Excel solution 17 for Quarterly Payment Grouping, proposed by Philippe Brillault:
=LET(C,CHOOSECOLS,x,C(_T;1),fm,MAP(DAY(x)>25,MOD(MONTH(x),2),XOR),ma,SCAN(0,MAP(fm,VSTACK(0,DROP(fm,-1)),XOR),SUM),q,"Q"&ROUNDUP(ma/3,0),g,GROUPBY(HSTACK(q,ma,TEXT(ma*28,"mmm")),C(_T;2),SUM,0,1,,&q<>"Q5"),C(g,1,3,4))
The december total = 52700 - 4900 = 47800
(Thanks for the trick TEXT(UserDefinedMonth*28,"mmm") 👍 )
Excel solution 18 for Quarterly Payment Grouping, proposed by Philippe Brillault:
Kris Jaganah 
Excel solution 19 for Quarterly Payment Grouping, proposed by Erdit Qendro:
=LET(data,
    A2:B101,
    
dt,
    TAKE(
        data,
        ,
        1
    ),
    m,
    MONTH,
    
mo,
    IF((DAY(
        dt
    )<26)+(m(
        dt
    )=12),
    m(
        dt
    ),
    m(
        dt
    )+1),
    
qr,
    "Q"&ROUNDUP(
        mo/3,
        0
    ),
    
gr,
    GROUPBY(
        HSTACK(
            qr,
            mo
        ),
        TAKE(
            data,
            ,
            -1
        ),
        SUM
    ),
    
grM,
    HSTACK(
        gr,
        MAP(
            INDEX(
                gr,
                ,
                2
            ),
            LAMBDA(
                a,
                IF(
                    a<>"",
                    TEXT(
                        a*28,
                        "mmm"
                    ),
                    ""
                )
            )
        )
    ),
    
res,
    VSTACK(
        {"Quarter",
        "Month",
        "Payment"},
        CHOOSECOLS(
            grM,
            {1,
            4,
            3}
        )
    ),
    res)
Excel solution 20 for Quarterly Payment Grouping, proposed by LUIS FLORENTINO COUTO CORTEGOSO:
=LET(f,
    A2:A101,
    d,
    IF(DAY(
        f
    )>25,
    f+10*(YEAR(
        f
    )=YEAR(
        f+10
    )),
    f),
     REGEXREPLACE(
         GROUPBY(
             HSTACK(
                 "Q""IENT(
                     MONTH(
                         d
                     ),
                     3
                 )+1,
                 MONTH(
                         d
                     )&TEXT(
                         d,
                         "[$-en-US]mmm"
                     )
             ),
             B2:B101,
             SUM
         ),
         "(dd?([A-Z]))",
         "$2"
     ))
Excel solution 21 for Quarterly Payment Grouping, proposed by Ben Warshaw:
=LET(
    
     _Date,
     $A$2:$A$101,
    
     _Date2,
     A2,
    
     _Payment,
     $B$2:$B$101,
    
     _Step1,
     SEQUENCE(
         MAX(
             _Date
         ) - MIN(
             _Date
         ) + 1,
          1,
          _Date2,
          1
     ),
    
     _Step2,
     SCAN(
         1,
          _Step1,
          LAMBDA(
              s,
              c,
               IF(
                   DAY(
                       c
                   ) = 26,
                    s + 1,
                    s
               )
          )
     ),
    
     _Step3,
     SUMIFS(
         _Payment,
          _Date,
          _Step1
     ),
    
     _Step4,
     GROUPBY(
         _Step2,
          _Step3,
          SUM,
          ,
          
     ),
    
     _Step5,
     IFERROR(
         TEXT(
             DATE(
                 2000,
                  TAKE(
                      _Step4,
                       ,
                       1
                  ),
                  1
             ),
              "MMM"
         ),
          ""
     ),
    
     _Step6,
     IFERROR(
         "Q" & CEILING(
             TAKE(
                      _Step4,
                       ,
                       1
                  ) / 3,
              1
         ),
          "Total"
     ),
    
     _Result,
     HSTACK(
         _Step6,
          _Step5,
          TAKE(
              _Step4,
               ,
               -1
          )
     ),
    
     _Result
    
)
Excel solution 22 for Quarterly Payment Grouping, proposed by O. Zini:
=LET(
co_date;MAP(D2:D101;LAMBDA(_date;IF(AND(DAY(_date)>=26;MONTH(_date)<=11);EOMONTH(_date;1);_date)));
main;
GROUPBY(HSTACK("Q"&CEILING(MONTH(co_date);3)/3;MONTH(co_date);TEXT(co_date;"[$-en-US]mmmm"));E2:E101;SUM;;;2);
CHOOSECOLS(main;{1;3;4})
)

Solving the challenge of Quarterly Payment Grouping with Python

Python solution 1 for Quarterly Payment Grouping, proposed by Konrad Gryczan, PhD:
import pandas as pd
from pandas.tseries.offsets import DateOffset
path = "676 Credit card payment amount.xlsx"
input_df = pd.read_excel(path, usecols="A:B", nrows=101)
test_df = pd.read_excel(path, usecols="E:G", nrows=14)
input_df['Date'] = pd.to_datetime(input_df['Date'])
input_df['adjusted_date'] = input_df['Date'] + pd.to_timedelta((input_df['Date'].dt.day >= 26) * 6, unit='D')
input_df = input_df[input_df['adjusted_date'].dt.year == 2025]
result = (input_df
 .assign(Quarter="Q" + input_df['adjusted_date'].dt.quarter.astype(str),
 Month=input_df['adjusted_date'].dt.strftime('%b'),
 MonthOrder=input_df['adjusted_date'].dt.month)
 .groupby(['Quarter', 'Month', 'MonthOrder'], as_index=False)
 .agg(Payment=('Payment', 'sum'))
 .sort_values(by=['Quarter', 'MonthOrder'])
 .drop(columns=['MonthOrder']))
total = pd.DataFrame([{'Quarter': 'Total', 'Month': None, 'Payment': result['Payment'].sum()}])
result = pd.concat([result, total], ignore_index=True)
print(result)
                    
                  
Python solution 2 for Quarterly Payment Grouping, proposed by Anshu Bantra:
from dateutil.relativedelta import relativedelta
df = to_df(REF("A1:B101"))
df['Date'] = pd.to_datetime(df['Date'])
df['new'] = np.where(
 df['Date'].dt.day > 25,
 df['Date'].apply(lambda x: (x + relativedelta(months=1)).replace(day=1)),
 df['Date']
)
df['Year'] = df['new'].dt.year
df['Month'] = df['new'].dt.month
df['Qtr'] = ( ((df['Month']-1)%12) // 3) + 1
df.groupby(by=['Year', 'Qtr', 'Month'])
 ['Payment'].sum()
 .reset_index()
 .sort_values(by=['Year', 'Qtr', 'Month'])
                    
                  

Solving the challenge of Quarterly Payment Grouping with Python in Excel

Python in Excel solution 1 for Quarterly Payment Grouping, proposed by Alejandro Campos:
df = xl("A1:B101", headers=True)
df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%Y')
df['adjusted_date'] = df['Date'] + pd.to_timedelta((df['Date'].dt.day >= 26) * 6, unit='D')
df = df.query('adjusted_date.dt.year == 2025').assign(
 Quarter="Q" + df['adjusted_date'].dt.quarter.astype(str),
 Month=df['adjusted_date'].dt.strftime('%b'),
 MonthOrder=df['adjusted_date'].dt.month)
grouped = df.groupby(['Quarter', 'Month', 'MonthOrder'])['Payment'].sum().reset_index().sort_values('MonthOrder').drop('MonthOrder', axis=1)
result = pd.concat([grouped, pd.DataFrame({'Quarter': ['Total'], 'Month': [''], 'Payment': [grouped['Payment'].sum()]})], ignore_index=True)
                    
                  

Solving the challenge of Quarterly Payment Grouping with R

R solution 1 for Quarterly Payment Grouping, proposed by Hussein SATOUR:
=LET(a,A2:A101+6,b,IF((a>--"28/2")*(a<--"3/3"),--"28/2",a),c,MONTH(b),DROP(GROUPBY(HSTACK(YEAR(b),c,"Q"&ROUNDUP(c/3,0),TEXT(b,"mmm")),B2:B101,SUM),,2))

&&

Leave a Reply