We know that SUBTOTAL allows us to perform some basics functions like SUM, COUNT, AVERAGE, etc. that apply to visible rows only. However, there is no similar function for visible columns only.
If we need to SUM visible columns only, we will need a twist.
The twist is not difficult at all. What we need is a helper row, say Row 1 in our example, and SUMIF function.
In A1, input the formula:
=CELL("width",A1) 'copy across to F1
As mentioned in previous post, the function CELL(“width”,A1) returns 0 (zero) when the column is hidden.
In G4, instead of a simple SUM, let’s do a SUMIF:
=SUMIF($A$1:$F$1,">0",$A4:$F4)
It simply instruct Excel to sum the range of A4:F4 where corresponding cells in A1:F1 is greater than zero (“>0”). Put it in other words, SUM visible columns only. YEAH!
Now we may hide column C:D to see the result…
Wait! It is still 21. Nothing change.
Unfortunately, this is the limitation. Although CELL is a volatile function (meaning it will get recalculated whenever there is a change in the worksheet), a simple HIDE/UNHIDE COLUMN action does not trigger recalculation. We need to give it a little push, say pressing F9, after hiding/unhiding columns.
(note: we may hide ROW 1 for better visual effect)
To further workaround it, we may GROUP columns and use the +/- button on the top to hide or unhide columns.
Please follow the steps below:
1) Insert 3 empty columns (C, F, I) (tips: set column width to 2 which is more or less the width of the +/- button displayed on top)
2) Select columns A:B
3) Data tab –> Outline Group –> Group (shortcut tip: Alt+Shift+Right arrow)
Now we should see the +/- button on top of column label
4) Repeat Grouping to columns D:E, and G:H (tips: Select the columns and then press F4, which is to repeat previous action)
We should be able to get the above layout. Note: as we have inserted three columns, the formula in J4 (which was previously in G4) is now extended to cover column A:H.
Interestingly, hiding/unhiding columns by using the +/- button does trigger re-calculation.
With this workaround, we save the key stroke of F9 after hiding / unhiding.
Nevertheless, doing the GROUPing is kind of tedious. Moreover, it may not be easy to group columns with real life data in a seamless way without adding extra columns.
Therefore I would do this trick without GROUPing columns; but bear in mind of the F9 key. 🙂
Here is a Sample File for you to download.
What do you think about the trick? Please share with us by leaving comment.
Nice solution! I tried to google on Chinese and Japanese resources, but there is no Column’s solution (only subtotal 109 for ROWS). But once I tried to Google on English, I found your website 🙂 Thank you.
LikeLike
Thanks. Glad it helped! 😀
Btw i also have a YouTube channel where I have video in Cantonese…
check it out: https://www.youtube.com/playlist?list=PLnHdEIR8UL5OYDlQgnd30kBEV7Q30nx1X
😆
LikeLike
Nice trick!
Another twist to it is if you want to sum non-sequential visible columns only.
Instead of
=CELL(“width”,A1) in A1, you could put
=IF(CELL(“width”,A1)=0,0,1) which would put 0 in non-visible cells and 1 in visible ones.
You then need to sum like this:
=(A2A$1)+(C2C$1)+(E2*E$1)+…
And copy to all subsequent rows.
Voila!
LikeLike
Oupsss….I meant :
=(A2A$1)+(C2C$1)+(E2*E$1)+…
LikeLike
For some unknown reason, the star does not show in my reply in the first 2 brackets, so i will replace with x:
=(A2xA$1)+(C2xC$1)+(E2xE$2)+…
LikeLike
Hi Stephan,
Thanks for your comments and ideas… i guess the word editor of WordPress “eat” some special characters like ⭐️, smaller, larger… 🤔. Thank you for your patience to leave your messages. Appreciate it.
Btw, you may use SUMIF for an easier formula construction i think.
Cheers,
LikeLike