There are a couple of ways of approaching this, depending on your appetite for creativity, as well as the specifics of your table. :)
Assuming the data fills your table, you can use the COLUMNS() function to find the number of columns in the table. This will increase each time you add a new column.
Note: this technique may fail if your table exceeds the number of columns, so try it and if we need to rework it we will... I always prefer the simple options first :)
So COLUMNS(Table 1::43) will return the number of columns in that row.
You can pass this number into INDIRECT() to calculate a reference. For example:
=INDIRECT("Table 1::R43C"&COLUMNS(Table 1::43), FALSE)
will return a reference to the last cell in row 43 (the FALSE at the end tells Numbers you're using R1C1 format rather than than the more common A1-style, and this saves us from having to convert the column number to an index (e.g. 'BX')
INDIRECT() works by taking a textual description of a cell (or range) and converting it into references that other functions can work with.
You can extend the INDIRECT() function to return a range instead of a single cell, like:
INDIRECT("table 1::R43C6:R43C"&COLUMNS(Table 1::43:43),FALSE)
So now we have a reference that points to Row 43, Column 6 (or F) through the last column in row 43
We can pass this into your existing AVERAGEIF() function, thus:
=AVERAGEIF(INDIRECT("table 1::R43C6:R43C"&COLUMNS(Table 1::43:43),FALSE),"<>0")
which looks like this:
Now you'll get an average of all the non-zero cells in row 43, from column F to the end of the table.