The SUBTOTAL function provides some basic calculations on filtered data such as averages, standard deviation, maximum and minimum values. More advanced calculations such as statistical functions including the CORREL correlation function as well as any of the other inbuilt functions within Excel cannot be performed on filtered data ranges without applying complicated array formulas.
Another alternative and effective solution is to apply a user defined function to the filtered data ranges in order to return an array of values representing only the visible data. This way all functions in Excel can be applied to filtered data including common statistical functions such as correlations and forecasting.
The following VBA code creates a user defined function that returns only the visible data with the input range.
VBA Code
Function VISIBLE(InputRange As Range) As Variant Dim arrOut(), ic As Variant Dim vcount As Long vcount = 0 For Each ic In InputRange If ic.Rows.Hidden = False And ic.Columns.Hidden = False Then ReDim Preserve arrOut(vcount) If IsNumeric(ic.Value) Then arrOut(vcount) = ic.Value Else arrOut(vcount) = 0 End If vcount = vcount + 1 End If Next VISIBLE = arrOut End Function
This can then be used within standard Excel functions on the filtered data such as correlation in
This is a great solution to work with filtered data. If you are looking for different options, AI tools like SkySuite AI can also efficiently handle complex calculations of transformed data. It does a lot of work for projects beyond what standard Excel functions can do and can be a great addition to advanced data analysis.