Link to home
Start Free TrialLog in
Avatar of andrewssd3
andrewssd3Flag for United Kingdom of Great Britain and Northern Ireland

asked on

Excel count columns in a range

I need an efficient and preferably non-volatile worksheet function to count the columns in a supplied range.  I am using e.g.
=COUNTA($A$1:$D$1)+COUNTBLANK($A$1:$D$1)

Open in new window

for a range that has only one row, or I guess I could have
=COUNTA(INDEX($A$1:$E$22,1,))+COUNTBLANK(INDEX($A$1:$E$22,1,))

Open in new window

for a range with multiple rows.

Obviously I could have a simple UDF like
Public Function ColCount(ByRef rngIn As Excel.Range) As Long
    ColCount = rngIn.Columns.Count
End Function

Open in new window

to do this, but I'm looking for a worksheet function if possible.

Any better ideas than mine?
ASKER CERTIFIED SOLUTION
Avatar of barry houdini
barry houdini
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Norie
Norie

Do you mean the no of columns with data?

If you don't then you can just use COLUMNS which will return the no of columns in a range.
Thanks for the grade....

Just a note on that first formula you listed

=COUNTA($A$1:$D$1)+COUNTBLANK($A$1:$D$1)

You have to be careful with that if any of the cells contains "formula blanks" (null strings) as both COUNTA and COUNTBLANK count those....so it's possible that that formula could give you a result of 4,5,6,7 or 8!

regards, barry