Look closely at where I had my ""...

=sumifs(INDIRECT("TBData[:&B1&"]"),TBData[account],A1)
(-SUMIFS(INDIRECT("TBData[:&E4&"]")

The way it works, is that INDIRECT() allows you to convert text into something that excel will recognise as a reference/range. Keeping that in mind, all text in a formula needs to be surrounded by ""

So what we need to do, is ID what will be text and what will be a cell ref. (to keep it simple, I am leaving out the last 2 parts of teh SUMIFS().

the 1st part TBData[2012] is where we want to replace the hard-coded year with a year reference cell.
To do that, we need to break it into 3 parts...TBData[...2012...]
the 1st part will become text, so "TBData["
the 2nd part will be the cell ref $E$4 (I absoluted the reference in case you copy it)
the 3rd part will also become text "]"

sooooooo (again, untested)...
=ROUND(-SUMIFS(INDIRECT("TBData["&E4&"]"),TBData[Account],A9),0)

I would test this without the other bits, to make sure it is working properly, maybe just...

=INDIRECT("TBData["&E4&"]") and see what it returns

Another thing that is confusing the issue is the structured table referencing. You can get around this my either converting back to range, or by just typing in the range refs manually

If you still have a problem, upload a small (clean) sample workbook (not a pic) of what you are working with, and what your expected outcome would look like.