I am using Excel 2010.
I have a "monthly" data table that looks similar to this:
MonthBegin InventoryExpenses Overhead TotalSales TotalSalesIncome TotalProfit
July-11 $1,500 $4,952 89 $7,139 $687
August-11 $2,200 $4,236 105 $8,312 $1,876
September-11 $1,100 $4,429 74 $6,691 $1,162
The following formula is automatically propogated to every cell in the [MonthBegin] column:
=DATE( 2011, 7 + ( ROW( ) - 2 ), 1 )
Every other colmun has a similar column-formula that automatically pulls the appropriate data from another source, based on the month listed in the [MonthBegin] column.
With this configuration, I can just insert a new row anywhere into the table and the next month will automatically appear at the bottom in the correct order (which I find nifty).
But I need to take this to the next level of automation, to please management.
How can I make it so that the spreadsheet automatically adds a row for October once the month is over?
I've been considering using a dynamic range for the table:
=OFFSET(A1,0,0,( ( YEAR( TODAY( ) ) - 2011 ) * 12 ) + ( MONTH( TODAY( ) ) - 7 ),6)
... but Excel won't accept such a formula for the table area, I assume because it is not static.
Can anyone explain to me how to gain this functionality with my data table?
I'm assuming you are using Excel's built in "table"? Not sure how you get that to expand automatically but you can use this formula, that I have tested in 2007, that works.
For the first month use:
Where E1 is the first month you want to start with.
Then use:
Where F2 is just the cell above your current cell. And then just drag it down as far as you want it to go.
You can't dynamically add a new row with formula only.
Here is a VBA event procedure that will do the trick. You need to put in the
Workbook module
Don't forget to change the name of your table and to add the name of your Worksheet (see the comment inside the code)
OK, here's what you would probably need to do.
Tools>Design>Tools>Convert To Range
Use a dynamic name for your new range. You can use the
INDEX
method orOFFSET
method. Then use Conditional Formatting to make it look nice.I looked in "Excel 2010 Formulas" by John Walkenbach and he doesn't give any solution to the table problem. I think it is because tables are supposed to be automatic, so unfortunately you lose some control when you do that.
You could also automate it with VBA.