I need a formula that can make a range expand in between other data.
In column B for each month you can put either Foo
or Bar
as values.
I need to count the number of foos and bars in each month. But also make it possible to expand the range from B6:B11 to for example B6:15 and the count function should work.
=COUNTIF(B6:B11,"Foo")
But that isn't dynamic.
I know you can make dynamic ranges with OFFSET and COUNTA but that doesn't work because the data is not structured the way this formula needs it to be.
OFFSET($A$1,0,0,COUNTA($A:$A),1)
I made it making a VBA UDF which emulates the CTRL+DOWN to find the next filled cell, but because the count of Foos
or Bars
are later linked to a different master workbook a UDF will not work, UDFs can't run with linked values. (as far as I know)
=COUNTIF(INDIRECT("B"&nextC(A5)&":B"&last(A5)),"Foo")
where nextC and last is:
Function last(rng)
last = Sheets("Sheet1").Cells(rng.Row, "A").End(xlDown).Row - 1 ' finds the last cell row in the current month
' with A5 as input it returns 11
End Function
Function nextC(rng)
nextC = rng.Offset(1, 0).Row ' returns 6 if input is A5
' there may be a better way to do this, I just couldn't think of it at the moment and just wanted to see if it worked
End Function
Is there any formula that can replicate the UDF meaning give COUNTIF a dynamic range that is in between data as the picture shows.
If helper columns are needed then it's not a problem.