|
|
|
 |
How to get a formula field to total an entire table column, even if some
cells in the column contain text or are blank
|
Article contributed by Dave Rado
The big problem with using the { =SUM(ABOVE) } field in Word
(by selecting Table + Formula) to sum a table column, is that if there are any
blank cells in the column, or any cells containing text, the formula only sums
the cells below the first non-numeric cell it encounters. Another problem
is that it can only total a maximum of 85 cells.
One workaround is to specify the row and column numbers in the formula; for
example, to sum rows 1-20 of the fourth column (column D), you could use {
=SUM(D1:D20) }. The big problem with that, though, is that such a formula
would need to be amended the moment you added or deleted any rows (and most
users wouldn't remember to amend it). And
unfortunately, if you used {
=SUM(D:D) } to total column D, you'd get a circular reference (the
formula would include itself in the total). However, see: I tried to use the
{ =SUM(ABOVE) } formula in a table but the answer was obviously incorrect
for more information regarding this workaround.
Another workaround is to use ToolsCalculate
instead of using a formula.
The trick I use is to have the total row as a separate table, separated from
the main one by a paragraph with its Font size set to 1 point, and Hidden (under Format + Font), and
its line spacing set to Multiple 0.1 (under Format + Paragraph).
Because of the 0.1 line spacing, the gap between the tables is not noticeable,
even on-screen, and even when ShowAll is switched on; so arguably it
isn't really vital that you set the font to Hidden; but without doing that, the
gap may just be noticeable on high resolution printers.
Then use a bookmark in the SUM formula. It's a bit kludgy but it
does work. One major benefit of this strategy (for things like Invoice and Quote
templates) is that the user can subsequently add more rows to the main table simply by
tabbing, and the formula will still work which they couldn't otherwise do.
So supposing you've created two tables (the main table and the total row
table) as follows:

Figure 1: This is actually two tables, separated by a 1 point, 0.1 line-spaced
paragraph.
As you can see, even with ShowAll switched on, the gap is
invisible.
Select the main table, select Insert + Bookmark, call the bookmark Table1
and click Add. (If you had more tables of this sort you could bookmark
the others with names such as Table2,
Table3,
etc).
Then in the total cell, press Ctrl+F9, and within the field braces {},
insert the following
formula:
{ SUM(Table1 F:F) \# "#,##0.00;-
#,##0.00;''" }
Table1
in the formula refers to the name of the bookmark you've marked the main table
with. The formula, being in a different table from the column it's totalling,
wouldn't know which table you were referencing otherwise. The F:F bit
means the 6th column from the left.
The bit at the end of the formula:
;''"
... means that if there are no values in column F, don't display anything
(otherwise it would display 0.00). I learnt that trick from Word MVP Cindy
Meister.
The total
field will automatically update when you print, or go into Print Preview
(provided you have Update
fields switched on under
Tools + Options + Print); and you can also update your fields at any time by
Selecting All and pressing F9 (update fields) - which you could assign
to a Toolbar button to make it more user-friendly.
If the user might need to insert more such tables in the same document, you could make it more user-friendly still by storing
the basic table layout, as an AutoText entry; and then using a macro to
insert the AutoText entry, assign a bookmark to the main table (bearing
in mind that the bookmark name needs to be different each time, so can't be
stored in the AutoText entry itself), and insert the formula (which could not be
stored in the AutoText entry, for the same reason).
Formula Fields are covered in more detail in Word's Help.
|