# Find consecutive cells above a certain value, ignoring zeroes.

#### myredroom

##### New Member
I am trying to count the number of values in preceding cells which are greater than a certain value (in this case 19), but ignoring zero values.

Put another way, I want to find the number of consecutive weeks that a staff member has reached target, but excluding holidays.

I have googled this to death but cannot find a way to do it.

Any help greatly appreciated.

Example below:

 week 1 week 2 week 3 week 4 week 5 week 6 consecutive weeks >=19 Cheryl Wood 28.6 0 0 28.5 27.9 31.5 4 Roger Ward 10.4 22.8 27.7 11.9 0 16.9 0 Nancy Butler 12.7 23.9 14.3 18.2 24.8 22.7 2 Angela Simmons 0 27.6 23.4 21.9 20.4 0 4 Martha Perry 11.7 13.9 0 0 15.7 28.2 1 Lawrence Lewis 23.6 0 0 19.9 18.4 20.1 1

<tbody>
</tbody>

It is the final column I am seeking a formula for. I have entered the expected result.

#### Special-K99

##### Well-known Member
Why is Roger Wards consecutive week > = 19 set to 0?
Week2 and Week3 are both > 19 so shouldnt the result be 2 ?

For that matter Chery'ls should be 3 not 4

Last edited:

#### Special-K99

##### Well-known Member
Try this

in h2

=MAX(FREQUENCY(IF(B2:G2>=19,COLUMN(B2:G2)),IF(B2:G2<19,COLUMN(B2:G2))))
Array formula, use Ctrl-Shift-Enter

But dont ask me how it works, cribbed from various sources

Last edited:

#### myredroom

##### New Member
oops, sorry my mistake!

#### myredroom

##### New Member
Correction, Roger Ward is zero because the preceding week didn't reach target. I fired off my reply a bit quick there!

#### myredroom

##### New Member
Try this

in h2

=MAX(FREQUENCY(IF(B2:G2>=19,COLUMN(B2:G2)),IF(B2:G2<19,COLUMN(B2:G2))))
Array formula, use Ctrl-Shift-Enter

But dont ask me how it works, cribbed from various sources
This gives the following results:

 3 2 2 4 1 1

<tbody>
</tbody>

The last 4 results are correct, the first 2 not. I can't see a pattern though.

#### Special-K99

##### Well-known Member
So Cheryl should still be 3.

Not sure I can help you here with that additional "reset to 0 if target no longer becomes achieved"

I'll have a think but am not holding out much hope in working that out...

#### Roger Govier

##### Active Member
Hi
I think if you modify K-99's formula with a leading IF test, you will get the result you want.

Also needs to be array entered with CSE (unless you are on the Insider Fast version fo Office 365 with Dynamic Arrays)

=IF(G2<19,0,MAX(FREQUENCY(IF(B2:G2>=19,COLUMN(B2:G2)),IF(B2:G2<19,COLUMN(B2:G2)))))

Last edited:

#### myredroom

##### New Member
Hi
I think if you modify K-99's formula with a leading IF test, you will get the result you want.

Also needs to be array entered with CSE (unless you are on the Insider Fast version fo Office 365 with Dynamic Arrays)

=IF(G2<19,0,MAX(FREQUENCY(IF(B2:G2>=19,COLUMN(B2:G2)),IF(B2:G2<19,COLUMN(B2:G2)))))
This also hasn't achieved the desired results.:
 2 0 1 0 1 1

<colgroup><col width="64" style="width:48pt"> </colgroup><tbody>
</tbody>

Perhaps I've not been clear. I'm trying count backwards from now, the number of weeks until a result of less than 19 is found. Ignoring any zero entries. Maybe I'll just write a user defined function instead!