Excel Hour - Learn to Excel with The FP&A Guy

Paul Barnhurst teaches the LET function in Excel, starting with simple calculations like price increases and moving to complex dynamic timelines. He shows how to use AI tools to generate formulas, stack functions like HSTACK and VSTACK, and build readable models that update automatically.
Chapters
All right, welcome everybody. Um, if you're out there and you can hear me, please let me know where you're coming from in the chat. I see a note from Wayne Phillips. Always good to see you, Wayne. Uh, excited to host this webinar, so just let me know if you're out there where you're coming from, your name, and we'll start here in a minute. Um, I guess I'm supposed to tell an Excel joke because that's what everybody's come to expect from me. Why was the spreadsheet X-rated? Does anyone know why the spreadsheet was X-rated? We'll try that one today. Because of graphic content. Yes, I know, it really bad pun, sorry. All right, well, hopefully there's a few of you out there. I just see the comment from Wayne, haven't seen anything else, but let me know. You guys can access the file on my website under the Excel files for the FP&A Guy. I'll go ahead and share my screen and show everybody where that is real quick, and then we'll jump into things. I'll copy the, uh, link here for anyone who needs the file. And you can find it— share my screen— you can find it here on my website under Educational Resources, Resources, Excel Files, and it's this one right there with today's date. All right, so I'm going to share my other screen that has the Excel file and we'll get started. All right. Jeff, yes, Jeff, I'm performing all week and I do take tips. So, you know, if you want to, if you want to leave me a tip, please feel free, I'll take them. All righty, love to hear from others. Let me know where you're coming from. So what I'd like to start by asking, we're just going to jump right into the deck, right into the Excel file today, no deck. I am going to have to wrap up about 10 minutes early, so I figure we'll get into things a little quicker than normal. How many of you have ever used the LET function? So if you've used the LET function, just let me know in the chat. I'd love to know if you've ever used it because that's the one we're going to cover today. I would say if you've never done coding, you've never done complex formulas, declared variables. Let may feel a little intimidating. Um, I know, Wayne, I know you have— you're, you're a bigger Excel nerd than I am, so that's a, that's a compliment. Bradford's saying a couple times. So some of you, the first part of this may, uh, be something you're very comfortable with in that I'm going to talk through some of the basics and then we'll share a few examples. I will admit, when let came out, it scared me. I still don't think I'm great at let. I'm starting to get it more and more, and I really appreciate it the more I spend time with it. AI's definitely helped with that. It can write LET formulas much better than I ever could. But the whole idea— so the LET function basically has 3, 3 parts to it. 2 of those can be repeated basically as many times as you want. You have the name, so that's whatever you want to name your variable. So basically you're naming things to use within the function again and again. So the first thing could be like start date. The start date could be a value in a cell, it could be C5, it could be a function. You know, your next variable might be your end date, and so you name it end date. Then you might have something called time, and it's the difference between your start and end date. And so you're doing these names of these variables, and you can continue to use variables you've named earlier. What that does is it stores that in the formula so it doesn't have to recalculate every time like it does in a regular Excel formula. Then at the end you do your calculation, which is your output. So it allows you to accomplish quite a bit in one function that you might not be able to do otherwise, or could be difficult to do. So it's pretty impressive what it can do. All right. Let me go ahead and let's run through a couple examples. We're going to start extremely basic. So these examples are not how you would use let. They're really about teaching the principle. Yes, uh, David, this is recorded. It will be available on LinkedIn. It will be available on StreamYard for a little while, and it gets streamed to YouTube, so you can find it on YouTube. So if you want to rewatch any of this it will be available. All right, so we're going to take a super simple example. I have this $100. I want to— if I wanted to increase the $100 by 10%, the formula would just be my price times 1.1, right? $110. Really simple. Now I'm going to show you how I could do that with a LET. Just so you can see what naming a variable is like, not because that's a good use case. It's an easy one to show the example. So I'm gonna delete this here, delete it with me. And what we're gonna do is we're gonna say equals let. And so the let function, you can see it already tried to type it for me 'cause I have autocompletion on. So I'm gonna turn that off. Because I don't want it to complete it. No, just leave me alone right now, Copilot. It is getting really good. It's getting better and better at doing formulas for us, but we're going to do this one. So the first thing we do is we need to come up with a name. Given that this is treated as a variable in a function, we don't have to put it in parentheses, the name here. Often you do that when you're doing text, right? You put it in parentheses. You don't need to. So we're going to say price, and then it says, well, what's the value of that name? Well, that is C7. All right, so now we've given it a name and a variable. The only other thing it requires is a calculation. We could have multiple name and variables, and we'll do a second example of this in a minute. So now what I want you to do is instead of typing C7 here, you're just going to type price times whatever price crease increase you want. In this case, I want 1.1. So now I'm going to show very similar to this example, but we're just going to do two variables. Now this again is not a use case where you would tip— you would do this with a let, but it shows you how to write the names and variables. So let's say the increase I want is 10%, right? So we're going to change this to percentage. So what I could do here is the first thing I could say is price. Second thing, I could call it increase, or maybe it's a decrease. So I could, you know, maybe I'll name it rate or adjustment. We'll just name it adj for adjustment. We'll call it that. We'll set it equal to this here, and then my formula could be price times 1 plus ADJ, right? And so if I change that to 15%, I changed it to -15%, whatever, it's going to calculate that. Right, that in and of itself is nothing special. So now let's go to a second example where we can see reusing variables. So that's where it gets valuable, is you can store something and then all you have to do is reference what you stored instead of having to completely redo something. All right. So in this example, I have this example where it says if the revenue is less than the COGS, right, if it's greater than 0, do this, otherwise give me 0. So revenue has to be greater than COGS for it to do revenue minus COGS divide revenue to figure out that percentage, otherwise you get 0. So right, if this was $52,000 this would calculate to 0. All right, so we're showing 16%. We got the 8 over 50. So we just write that as a regular formula here. But you'll notice what we've done is we've written this once, we've written it twice. Sometimes in a function you might write something like this 4 or 5 times. So that's where let becomes really helpful. If I was to write this with LET, here's what I do. And I like to put my variables on individual rows, so each time typically I— you have something new, I put it on a new line. So this formula, what we'll do is we'd write the word profit, which our profit is C19 minus C20. Now in the next one, I'm using an IF statement. And so I'm saying, hey, if, if the profit is greater than 0, then give me the profit divided by C19, which is my revenue. Otherwise give me 0. So what I've done here is I've used this variable twice. So in this case, it's saving me calculation, especially if I had hundreds of these to calculate and I wanted to copy them down. It's going to store that profit calculation once instead of calculating it 2 times. You know, I could have done this a little different. I could have also saved it and said C19 is revenue, C20 is COGS, here's what profit is, revenue minus COGS, and then written it all out. But the whole idea behind LET is you're storing the variables, then you're doing the calculation And so it allows for more efficiency. It also allows for a lot more complex formulas that are easier to read, especially if you did a good job of naming your files. If you do a bad— like, a good job of naming your variables, right? We've all seen it where sometimes they're bad, but if you name them where it's easy to understand, the formula becomes much easier to read. Even though it can be really long and complex. And I'll share a couple of examples of that here in just a minute. So that's the second example. If you have questions, please put them in the chat. But that's example number 2. So, right, all I would have done is let here, type the word profit. Profit in this case was this minus this. And then that last part, I would have just written my formula where if profit is less than zero, I'd go ahead and write that whole statement. All right, so example 3 is going to be a little more complex, nothing too fancy. We have some cost, we have a tax rate., right? So similar to what we did above, I want to take the cost plus the, uh, cost times the tax. So my tax rate is 8.5% in Prince— I want $1,085. So I could again write that as a LET formula if we were to do it together. So what I'm going to do is I'm just going to copy over what I wrote before so we can kind of see it as we do this. So I'm just going to hard code this. So I use the same variables I did. So if I wrote let, my first variable I called it subtotal. You can call it whatever you want. Sometimes it's easier to do abbreviations. So maybe like we do st for subtotal. We set it equal to this. Then for rate, maybe I do rt. To keep it really short, and I do 35%. All right, so that's the rate now. And I, again, I like to separate these onto different rows. Now we're going to calculate what the tax is. The tax is just ST, so the subtotal, times the rate. So I've calculated that as an intermediate variable as well, so I can use tax wherever I want. In this case, my final is just going to be the ST, the subtotal, plus the tax, and I get $1,085. So for let, you do have to declare it in that formula. You couldn't use profit outside in a different function. It's a great, it's a great question. If you're wanting to reuse, that's where you're going to want to create a lambda, which we're not going to get into today. But learning lets in many ways is kind of a precursor to learning lambda. Um, uh, I've seen Dem Early do some great presentations where he's like, a lot of stuff you've done from a let, you could then create a lambda, which a lambda is a custom function using other functions. That you can store in the Name Manager and reuse throughout your workbook. Some great examples— I know Wayne Phillips knows this, um, Craig Hatmaker has created some great Lambdas to handle depreciation schedules, circular references, many other things with dynamic arrays that he makes available for free for anyone. So that would be kind of— I call that the next step beyond what we're going to cover today if you wanted to be able to do that. So hopefully that answers the question. Welcome, uh, Danielle, thanks for joining. She should be the one teaching this, not me, but, uh, I appreciate her showing up. So there are 3 examples we've gave, kind of very basic to start, to give you the general idea of LET. Okay, so Wayne said Ctrl+Shift+U is a shortcut to expand the formula bar. I didn't even realize that. That's— that is good to know. I will share one other thing here, you know, so you could see there he was showing me that shortcut. If you start to use LET and lambdas a lot, your formulas get really long. That's where I recommend downloading— in your add-ins, there's a, an add-in, and I, I had it installed. I'm not sure what happened here, but called Excel Labs. And so I'm just going to show you right here, it's called the Advanced Formula Environment. So yeah, it has— I just need to open it. I just didn't have it on my toolbar. I could take it off when I was doing a demo. And so you can write really long formulas here in the Advanced Formula Editor, and it will have more of some of the modern things like some of the color coding and things that you don't get in the traditional formula bar. So just so you know, if you really go deep on this, this becomes really helpful to use the advanced formula editor. I'm not going to go into it in detail, but you can see I can give a name, a description, and then I could write a formula here, you know, C2 or And you can see it has that IntelliSense and some of the color coding and things like that that you don't get necessarily in the formula, the regular formula bar. All right, so now I want to go through more of what I'll call a, an FP&A use case. And I'm going to freely admit this idea, I stole it from Claude. I probably would— I wouldn't have written it this way myself, but I thought it was really unique when it showed it to me. I asked it to give me some examples, and so I modified it a little bit, but I took it from Claude. Now we're going to go kind of next level and see how you can nest things together. And then the real example I want to go through or spend the rest of the time is how would you create a dynamic timeline? So doing a timeline that's all one formula that automatically updates. It's, it's pretty amazing what it can do. So let's go ahead and first I'm just going to show you what we have here. So I have a budget of $125,000, I have actuals of $118,000. You can see in one formula it's given me, hey, what's the unfavorable amount and the percentage? It's like, okay, I could do that by concatenating things together, right? I could take the word unfavorable and take this minus this and the percentage. Now what I do like with this one is, you know, we put some if statements and some logic, and where it's helpful— and we'll walk through this logic, I think is a good example— is you see it's reusing things so it doesn't have to recalculate that. You know, if you had thousands of these lines of actual versus budget and you wanted— are places where you're going to recalculate the same thing, it becomes more valuable. I think the, the most valuable example I'll give is the timeline, but I think this is a good teaching to start to see multiple different variables in a, in a formula. All right, so what we're going to start with is we're going to break this apart one by one. So before we even write the formula, I want to walk through what we have. So we've used a variable called Actuals. We've set that equal to This should be C6. I got off one row. This should be C7. So that, that's what we're going to do in our LET statement is we're going to declare those two variables. So if I'm writing my LET statement, the first thing I'm going to do is LET, going to write the word actual, and I can set it equal to that, comma, Alt+Enter. Ctrl+Shift+U here, and then we'll do budget and we'll set that equal to C7. And so now we're on our third row, which you notice is our variance. Our variance is just our actual minus budget, right? So let's take variable, actual minus budget. All right, so next we want the percentage. Bring this up a little bit so I can see it here. So our percentage, you can see the formula here, what we're going to do for percentage. So I'm just going to go to the next line, we'll call it PCT. Here we're going to do an IF statement. So we're going to say if the budget— so we've reused C7 instead of having to follow each of these, we can now easily read it. Equals 0, then give me NA. Otherwise, instead of writing actuals minus budget divided by budget, I can now just write variable— or not variable, sorry, variance— divide budget. So here I've declared all my variables. Next, what I have to do is I have to give my calculation where I use all these variables. So before I do that, I'm just going to write, just as a placeholder, I'm going to put the word actual here. And it didn't— uh, it didn't like that. Hold on one second. I'm just gonna hold this for one second real quick and we'll come back to it. So we have it here. I've just taken it out of the formula. And what I want to show you is the next part we're going to do is the actual calculation, and I just want to walk through it before we, before we do it. So what we've said is we have our 4 variables: actual, budget, variance, which is just the 2 variables above, and percent, which is really just the variables with an IF statement. So by declaring those first 3, we just kind of continue to build. So now we want to bring it all together. So what we're going to have here is if the variance equals 0— or sorry, greater than or equal to 0— it's favorable. Otherwise, it's unfavorable. So we've made the assumption 0 is favorable. We could have written this more complex and say, hey, if it's equal to 0, do this, and another if. For simplicity, we just said, hey, if it's equal to 0, it's favorable. So we do that first part here. That gives us the word favorable or unfavorable. Notice we put those in quotes because these are not names. They're not names that we're assigning in let. This is text we want to display. So this goes in quotes. So we do that. And then we're just using an ampersand instead of typing concat because that takes a lot of work. So ampersand, text, open parentheses. Once again, we want our variance and we want it in this dollar format here. We could put whatever format we want. We want to be text, so we put the format in. Then we're going to do our next ampersand here, and this one here is adding just this. So all it's doing is adding a quote for the— not quote, a parenthesis for the percentage. Then we're doing again, if budget equals 0, give me NA, otherwise give me the percentage as text and add a quote at the end of it. So what I'm going to do to make this a little easier than typing all this out, I'm going to go ahead and copy this since I already have it here. I'm going to come back up here I'm going to do Alt+Enter, add it as a line, and I could break it apart if I wanted. Like, it might be easier to read— there's a little bit of preference there— is I could break it apart at each ampersand since that's kind of its own section in some ways. Is I could do something like that if I wanted. It gets a little long to read, but it should work. And now I need to put the if back in the beginning. And if I did everything right, we— this should work. All right, so somewhere I got some— oh, it helps if you put the comma as you keep going. All right, what did I— we're gonna do this and it should work since I copied what I had before. I think I had a comment. Oh, There we go. At the end, I did a mistake there. All right, so here we go, and we get the— we get the formula. So you can see these get a little tricky sometimes to write, but what's great, I could have left that other version in there and just asked Copilot to fix it for me. That's the benefit. Like, you know, you need to know enough to get there, but you can use Copilot to find those mistakes. The example I gave is I was writing a pretty nasty. This is a couple years ago, a really nasty indirect, several indirects. I try not to use those, but this is a case where it's going pretty deep with some indirects to solve a problem. Oh, I might have— you— did I write something wrong? You said that— well, yeah, I have variance_declined as a variable. Correct, that's okay. Do I have the word variable somewhere? I think it's all variance in here. Maybe I'm— so I think I'm okay, but, uh, unless I'm misunderstanding. So that's basically the let version of that. And so it's a great example where you can see, instead of typing C6 minus C7, C6— much easier to go, okay, that's actual, that's budget. Like, this is much more logical to see. It's a lot like using tables. Once you understand the syntax, it makes a lot of sense, and it really is more logical. It just takes time to learn. Correct, Wayne. Also, IntelliSense will pick up your— which, less likely to misspell. All right, so there's one other example I want to go through. We got about another 20-25 minutes here. But before I do that, let's see if I can come up with a, a good joke. Hmm, which one? See, people like have attended a lot of these, know all my jokes. We'll do a really bad dad joke. Does anyone know what ticks and the Eiffel Tower have in common? Does anyone know what ticks and the Eiffel Tower has in common? They are both Parisites. Never said the jokes would be good, but I'll keep them coming. We'll do a few more before we're done. All right, I'm gonna pause. Any questions from anyone? Thank you that it looks okay now. I probably— that was probably the mistake why I had to copy it over, is you're right, I probably wrote variable instead of variance or something like that. Easy to do, and you always do it when you're presenting so you look like you don't know what you're doing, which isn't hard for me to do. It's why I usually just stick to talking to people and doing instead of doing real FP&A work, but don't tell anyone my secret. All right, so I don't see any questions coming in, so we're going to move on. And the first part here will go really quick. We've all built a timeline for a financial model. Here I have one where I have 5 rows. If I was building this traditionally, I would have my inputs. I have my start date. I would list, you know, however many months I want in a model so I know. But if I built this with traditional non-dynamic arrays, this would equal C5, and then, right, I would have to drag it over, or I could do EDAY or ENDO MONTH and, and drag it over until I get to my 28 months. Either, you know, without dynamic arrays. Then my next function, I just use the YEAR function and set it equal to the date. Again, I drag it over. Now next, I add my month. Same idea, I drag it over. The quarter is probably the most complex formula here, and it's pretty simple once you know it. All you're doing is writing the word Q, an ampersand to combine it, and then you're just using a ROUNDUP, and you're dividing the ROUNDUP by 3. So when it, when it rounds up, the month 1 divided by 3 is going to equal 1, the month 2 divided by 3 is 2, 3 divided by 3, 4 divided by 3 is 2. And so since you're dividing it by 3, you're going to get all your quarters correct. That's all that— so really, if you took out this, right, you're just getting 1, 1, 1, 2, 2, 2, 3, 3, 3. The Q is just for presentation to make it easy for somebody to read. So I've added Q1, and then what I did down at the bottom is I thought it would be nice to have quarter and year. Different ways you could do it. I decided to do this as Q1 dash and then just the last 2 digits of the year. So I combined D13, my quarter, with this ampersand. So you can see the, the ends here— I mean, this dash. So you can see how I combined it with the ends here. And then I did a RIGHT to just give me the last 2 digits of the year. And that's it. That's something like— that's going to be a standard timeline. I am sure we've all built a few of those during our career. Next, let's see if I built a dynamic array timeline so it automatically spills. So that's going to be step 2, and then we'll finish by showing how you would build a timeline using the LET function so it all lives in one cell. All right, so the dynamic array timeline is going to be very similar— let me make this just a little bigger— very similar to what we did before with just a, a couple changes. The biggest change is going to be our first function, and we'll walk through this together. So what I'm going to do is I'm going to come down here so we can build it. So instead of referencing C5 by itself, what we're trying to do is we're wanting to create a dynamic where it will spill based on the number of months we have. So if I put 28, I want it to go across 28 columns. If I put 24, I want it to go across 24. 12, 12. I want to be able to change that number, change the start date, and that timeline automatically updates. So the key here is we know if we want to spill something across columns or rows that has some kind of pattern to it, some sequence, we can use the SEQUENCE function. That's a dynamic function. So we're going to combine EDATE— we're going to start with our date, and then we're going to use SEQUENCE to tell it how many months we want. So in this case, we're going to go SEQUENCE And I'm just going to go ahead and put 1 here for the rows. Rarely do I do that. Honestly, if I was creating this myself, I would probably put it as a parameter because I just make it— I find it easier. Then I could put explanations, people will know exactly what I do. But for simplicity here, we're going to do a little bit of, uh, hard coding some of these basic inputs that are pretty easy to tell. So now Now the number of rows I want is just going to be the number of months. So we go there, and I could technically close it here, and it's automatically going to assume I want to start with 1. But in this case, I don't want to start with 1, I want it to start with 0. I don't want it to append a month, so I'm going to make that 0, and then I'm going to say increment it by 1 month at a time. And I have to close my both of them, which it automatically did. You can see now it went out. You'll notice here when I went out to 28 months, my formatting didn't update because I didn't create a dynamic, like, conditional formatting. It doesn't update by default with dynamic arrays. It doesn't inherit the prior column or columns Formatting. So I've now created something that's dynamic here. If I change this— for simplicity, let's change it to 3 months, you can easily see it all— you can see it changed. If I change this to 2026, it changed. I'm going to make this just a little bit bigger. All right, so now all I have to do, very similar to before, is I can reference the year I just put a dollar sign at the end and that makes it dynamic. It's saying reference not only D10 but reference the entire range or the entire array, so it applies it to every single column that's there. Same with month, same with quarter. Outside of this first function, which before was really two— you had the month and then you had EDATE and you dragged it over Here you've created that part as 1. The rest of them are same as before except for they have a dollar sign. So now I've created dynamic timeline. Now what if I wanted to do that all in one function? That's where let comes in, and we can reuse variables to create this timeline as dynamic and I get it, when you first see this function, most people kind of like, I don't want to write that, right? It looks ugly. And we're always taught to keep functions short. Part of the reason we keep functions short is they're hard to understand. If you're using let and you've used good naming convention, good logic, someone who understands let will be able to follow the formula even though it's long or looks complex on the surface. Like, that's what scared me so much about LISP. I'm not gonna lie, I look at them and I see what people do and I'm like, I'm lost, I'm done. And then one day, um, I think it was for a course that I did with Giles Mell, I started digging into— I bet I can create a dynamic timeline. And I ended up with this half an hour later, and I'm like, this stuff isn't that bad. You just have to be willing to tackle it. And so let's break this down because I'm sure some of you are looking at it and going, I don't want to ever write that. It really isn't as bad as you think. So before we do anything, what I want to do is I want to show you that I've broken it all down for you. So what we've done is we've declared, in this case, 7 variables. We have our start date. Which we know is C5. We have our months in the model, which I named MM. You could name them longer if you wanted. There's pros and cons. The nice thing is about shorter is your function stays shorter, but it can be harder for people to understand. That's where sometimes having documentation— again, something Copilot or Claude or any of those tools is great at— is, hey, I'd like you to describe what each of my variables are. Is it's probably gonna get you 95% of the way there if you need to describe it. And then you add your little additional to it and somebody can follow it easier, but you can use shorter descriptions to make it easier to write. So there's pros and cons both ways. It's a, it's a balance you have to decide on. There's no, there's no perfect way here. There's lots of opinions. And as I always say, opinions are like buttholes. Everyone has one and most of them stink. All right, there you go, there's my most offensive joke of the day. All right, so we have MM and then I named this one DT. I could have named it something different, but it's basically the months in the formula. So what it's doing is that sequence the EDATE with the start date, sequence 1— this is the number of months I need— 0, 1. So if you look, that is basically this, just written with variables. Now that's all we've done here. Next, yr is the year. The year is just the date up here, so I do year. That's the year formula for the model. Now I have, um, mt— model— this should probably be model month versus months. Plural might not be the best there, but month_dt. So again, you can see I've done year, I've done month, now I'm going to do quarter. Quarter, model quarter, you again, you see QN ROUNDUP MT 3 0. Notice because this is dynamic and I'm naming all these, I don't have to put pound signs at the end of these. It's not needed in the LET. It's going to be dynamic on its own. And then the last one, so this qt is quarter, qy is the model quarter end year. And so that is just qt, and then you can see end parentheses dash and write year 2. So now I have all 6 variables. So now all it's doing is I got to think of a way of how do I bring the 5 I need forward into a timeline. That's where we're gonna write the calculation part. And I want to break, break down the calculation. We're using stack, and I'm going to take a minute to show how stack works if you're not familiar with it. So there's two different types of stack, kind of like there's the most common lookup, or two— horizontal and vertical. You guessed it, H is for horizontal, V is for vertical. So I have the number 1 and 2 here, or we'll just say 1 and 2 here, 1, 2, 3. And, you know, a second column, 4, 5, 6, I can stack these two together. So if I was to write HStack, and this is my first array, This is my second array. These aren't dynamic, but you know, my arrays here, you can see it stacked that one horizontally and then it stacked that one. If I did a VStack and did this, then this, it stacked it vertically. So that's all a horizontal stack, an HStack and a VStack are doing. So the reason I started this with an HStack— and let me come back here— I started with an HStack because I want basically two columns. I want one for my labels, which is not dynamic, and then the second stack is all my dynamic variables I just declared. So basically You can see it here. I did HStack and then I wrote the word VStack. And so I'm just going to break this apart. I'm going to do Alt+Enter here, Alt+Enter, and walk through this. So we did a horizontal stack because we're going to want to stack two things. One is going to be one column, one is going to be anywhere from 1 to like 24,000, I guess technically if you wanted. All the way to the end of your spreadsheet depending on how many months you want. So one's dynamic, one standard. The one that's standard, I then use the VSTACK. So date shows up in row 1, year shows up in row 2, month is row 3, quarter is 4, quarter and year is 5. So that's all this is. We just stack that to be our first array. Now we're dynamically creating our second array. And this is really easy now. All I need to say is date. So this is the dynamic date number. It's going to be in the next column on the same row with date. And then it goes on and on like that. So next— sorry, my daughter just excited to come in, so if you heard some noise in the background, that was her being silly. All right, so you see date with date. Year with year, month with the month variable, quarter with the quarter, quarter and year with the quarter and year, and then you close it. And so what that is, that's the calculation part, right? If I come back up here and we look at the whole formula, you can see— let's do it, actually, let's go up here and we'll make this a little bit bigger. Gonna have to drag it down a little bit. You can see right here, that's my calculation. So I've now created a dynamic timeline that lives in one function. And you can continue to see what you're going to find— people who use dynamic arrays, let, start to use lambda. Many financial models can be built with about a a tenth the number of functions because you're not dragging things. It will calculate quicker, and it does— if you know Excel really well, it does allow you to create some pretty neat type things. Like before PIVOTBY and GROUPBY were available, where it would now spill with headers and all that, a lot of people would declare all the variables and basically keep— create dynamic pivot tables with LET. Um, where I started to learn LET is a lot of, um, Mike Girvin stuff. Love his stuff on YouTube. And he would do a lot of things like this with different reports where he would just stack it all together and create his own kind of pivot table or equivalent of a GROUPBY function. And so that's the example of a dynamic timeline. So I'm, I'm going to pause here. That's I kept this a little shorter than normal. I know it was a little more explanation heavy because it's hard to kind of walk through some of these longer formulas in a limited time frame with a big audience without being able to kind of speak with each other. But I thought this was worth sharing, and there's a couple reasons. Even if you never write a LET function in your life, which I hope you don't, if you— the more and more we use AI, the more you're going to see LET functions. Those are natural to AI. AI doesn't think, hey, those are complex unless they've been trained to think that. Two, more and more people are going to start using let and we all have to review models. Even if we choose not to use dynamic arrays, not to use let, not to use lambda, we're like, that's just beyond me, like some people, VBA or whatever it may be. Basic understanding will help you because we all inherit models from others. That's just part of the job. If we work in FP&A, at some point you're going to inherit a model. And so the question is, does anyone know what you call a broken model? The broken model is one of two people's problem. It's either the intern or the new employee. So Wayne says— thank you, Wayne— I'm just going to share what he said here. I'm going to show his comment. I was late to dynamic arrays, but they are a huge time saver for financial models. They're great, great. I love creating with just the SEQUENCE function. You, you can create a really nice simple sensitivity table. One of the easier things— I, I've, uh, taught those before in some of the Excel Hours. You guys can find that on YouTube. All right, so we got about another 5 minutes. I'm going to wrap up a little early, so I'm just going to open it up to see if anyone has any questions around this. So you can ask me questions on anything on Excel. We'll give about 5 minutes here for any questions, and then we'll, uh, call it a day and just finish up a little early. I know we're all busy, so We'll, uh, call it a little early today, and if there's no questions, we'll call it even a little more early. And you can let me know if you thought this was too complex, you want me to keep it simpler. You can even share if there's ideas you have for a future Excel Hour. Please let me know, I'm always open to new ideas. So you gotta— got a couple minutes, the time is yours. Who manage Lambda libraries? I do not because I don't use a lot of, um, Lambdas, Wayne. I would probably ping Craig and ask how he manages his. Uh, thank you for sharing. I love this comment. I, I felt that way as well. So the LinkedIn user says, that's a cool trick on how to get quarters, never seen that before. LET scares me, so I don't use it without AI's help, but want to learn. STACK is scary too. This was super helpful, thank you so much, Paul. I'm glad it helped. And what I'll say is, you know, I, I remember when I used to think INDEX and MATCH was scary. When I, you know, graduated from Beyond VLOOKUP. Each next level, for some of us, if we're not comfortable, we're going to feel a little bit scary. But there'll come a point where the things start to click. Like, I remember when LET finally clicked for me, and I'm like, okay, I'm not as stupid as I thought I was, because that's kind of how I felt. And I don't want anyone to ever feel that way. I'm not implying that to you. That was just part of how I felt. And so what I would challenge you is you know, find, find resources that can help you learn and just keep challenging yourself. But don't— if you enjoy learning functions, learn them for fun. But the biggest advice I give is learn to be better at your job. These are tools to help you be better, whether it's AI, whether it's Latt, whether it's HDAC, whether it's VStack. You know, if you're never going to use it unless you, you enjoy that learning, invest your time on those things that you're going to use and will save you time. So I, I try to be very pragmatic there. Last thing I'll share is I do set— I do share some Excel courses. I have some of my own, Modern Excel, you can find it on my website. I also have, uh, stuff on FP&A. I also sell several other people's courses. I've taken some of the best resources I've seen, and I have affiliate relationships, often exclusive discounts with them on Learning AI. I have some on Excel. I have financial modeling. I'm a big supporter of Financial Modeling Institute. So check those out if you need resources. Feel free to reach out to me if you have questions. I mean, there's also a lot of great free resources, but there comes a point in time when having structured training, paying for that continuous learning, I think is worth it. There can be some real benefit there. So, um, that's what I had to say, and I'll hang on for one more minute, just see if there's any questions, and if not, we'll wrap a little early today. Thanks for attending, Wayne. Next month I want you to teach it. You'll be the guest lecturer. Wayne's probably like, no. So Wayne and I are in a class together learning about Claude right now from Carolina Carolina, Carolina Lago. So highly recommend it. She'll open her new one in September. The course will just get better and better as she does it more and more. But we're, uh, we're learning a lot about Claude. So Wayne and I get some chances to chat to each other. All right, well, I'm not seeing any other questions. I'll give about another 15 seconds and I'll let you go, but I might have to finish with one more joke. Does anyone know what— why the spreadsheet was constipated? Does anyone know why the spreadsheet was constipated? Because it could not budget. Don't know what to tell you. Never said the jokes would be good. All right, thanks everyone. I'll be here in a couple weeks again so we can do the jokes again.
More from Paul

AI Is Accelerating Faster Than Humans Can Keep Up: What Should Finance Pros Do









