Income and Expense Report with One Formula

The updated formula is working for me now, thanks!

This formula will break with any Transactions sheet row insertion operations above row 2, including Manual Transaction. For example, the D2:D range will shift to D3:D after one row insertion.

One option would be to wrap D2:D inside an INDIRECT string: INDIRECT("D2:D")

={"Type";ARRAYFORMULA(XLOOKUP(INDIRECT("D2:D"),Categories!A:A,Categories!C:C,""))}

Or, some other options that use the full column D:D range, similar to these that you may recognize :slight_smile:

=ARRAYFORMULA(IF(ISTEXT(D:D),XLOOKUP(D:D,Categories!A:A,Categories!C:C,""),))
=ARRAYFORMULA(XLOOKUP(D:D,Categories!A:A,Categories!C:C,""))
=ARRAYFORMULA(IF(ROW(D:D)=1,"Type",XLOOKUP(D:D,Categories!A:A,Categories!C:C,"")))