Performing a function on a column of variable length

  • Thread starter BeenThereGotLost
  • Start date
B

BeenThereGotLost

I am cutting and pasting rows of data from our ERP system into a spread
sheet. I then create a table at the end of the data calculating various
statistics. The column layout is fixed, so I always know which column I need
to perform the functions. The number of Row is NOT fixed, so I need a way to
indicate the end of the range.

Something like

=AVERAGE(RegionAround(B2,ColumnOnly))
where RegionAround(B2,ColumnOnly) would return B2:<row before first
blank cell>

I'm willing to write a VBA function to return this information, but I can't
get the recieving function to accept the value back as a range.

I am open to all ideas of performing functions on variable length columns.

Thanks,

ER.
 
N

Niek Otten

You could use this UDF:

Function EndCellTxt(a As Range) As String
EndCellTxt = a.End(xlDown).Address
End Function

Use with the INDIRECT function, like in

=SUM(B2:INDIRECT(endcelltxt(B2)))

--
Kind regards,

Niek Otten

Microsoft MVP - Excel
 
N

Niek Otten

I think that in order to cope with lovalized versions and other reference
style the function should be

Function EndCellTxt(a As Range) As String
EndCellTxt = a.End(xlDown).AddressLocal(, , Application.ReferenceStyle)
End Function

--
Kind regards,

Niek Otten

Microsoft MVP - Excel
 
B

BeenThereGotLost

Many Thanks, this is exactly what I needed. I did not realize you could use
the Indirect() function on the sides of the ":" in specifying the range.

ER.
 
Top