Glad it’s working! I found I wasn’t really using budgeting, or at least I wasn’t benefiting from it. I’ve instead simplified a bit and now just have a couple Envelope Register’s setup for the categories I think are important to track.
if you want to create a code block like @jpfieber, you would enter ``` on the line above and below the code you want to make a block. I typically format the block of text I want to make code in another program (Notepad++), then paste it into the quote block. Pretty much what is below, but remove the space between the smart marks.
`` `
=IFERROR
(
QUERY
(
FILTER
(
{INDIRECT($CC$54), INDIRECT($CC$58), INDIRECT($CC$56)},
INDIRECT($CC$58) <> "", INDIRECT($CC$54) >= A7, INDIRECT($CC$54) < D7
),
"SELECT Col1, Col2, Col3, Col3+0 LABEL Col3+0''"
),
{"","","",""}
)
`` `
@jpfieber: I’m just now starting to dive into the Budget Plan and figure out how it works. I was hoping to marry the functionality of this sheet and my Recurring Expense Entry/Generated Expenses sheets. They’re ultimately holding the same data, and they’re surprisingly similar under the hood! It turns out that I use a lot of similar functions in my Generated Expenses
sheet.
One of the similarities I find amusing is our conclusion to use the REPT()
function iterated over an occurrence row (cell AF3
on your Budget Plan
; cell M7
on my Generated Expenses - Upcoming
sheet). Working that out was tedious, but ended up being the key to bust my solution wide open! Then going through your solution just now, I noticed you already did it. I reinvented the wheel for nothing! Lol. But I did notice that the formula I came up with was different than yours.
Your formula:
={"Description"; ARRAYFORMULA(
TRIM(
TRANSPOSE(
SPLIT(
QUERY(
IFERROR(REPT(
OFFSET(B4,0,0,COUNTA(B4:B),1)&"♥",
J4:J
)),
,
999^99
),
"♥"
)
)
)
)}
I also noticed that your formula spits out an extra row that’s being covered up by an IFERROR check. This also makes the “Occurrences” column show a 1 after the last occurrence row.
My formula does not do this, If you would like to give it a try and use it in your template? I replaced it in my local copy and everything looks great!
My formula:
={"Description";INDEX(
SPLIT(
FLATTEN(
SPLIT(
JOIN(
""
,INDEX(
REPT(
BYROW(
$B$4:INDEX($B$4:$B,MATCH("zzz",$B$4:$B))
,LAMBDA(x,TEXTJOIN("|",0,x))
)&"@"
,$J$4:INDEX($J$4:$J,MATCH(9^9,$J$4:$J))
)
)
)
,"@"
)
)
,"|"
)
)}
Ha! Yea, I actually didn’t come up with that from scratch, I copied it from another older template I found in the forums (can’t remember who to give credit to). If I revisit Budget Plan I may take another look at that code and consider updating it, but I haven’t been doing a lot of budgeting, so odds are it’ll stay as is unless someone else wanted to take the code forward and support it. Thanks for pointing that out, I’m sure if was frustrating, but I’m also sure you learned a lot in the process, so nothing lost.
I don’t personally do a lot of budgeting, either. My initial solution just focuses on generating recurring expenses so that I can track what needs paid, and by when.
But my partner really needs the budgeting part of things to keep her savings on track. It has been pretty bothersome to have her set up the individual recurring expenses on my sheet, then go to Categories and account for them there as well. So that got me to thinking about the underlying problem; categories need to be more granular, with the ability to set a category as a recurring expense, then roll up to the category budget. Your sheet does half, and my sheet does the other. So basically merging the two would be ideal, haha. I’m planning on doing this once I wrap up some other things I’ve been working on.
Interesting idea, I’m excited to see it if you plan on sharing!
I will for sure be sharing once completed