2016-05-11 4 views
0

Я пытаюсь подсчитать, сколько ячеек в определенном столбце имеют более высокое значение, чем ячейка под ними. Это, как далеко я получил, но это не работает (она всегда возвращает 0, даже если есть хотя бы одна клетка больше, чем ниже этого):Подсчитайте, сколько ячеек имеет более высокое значение, чем ячейка ниже их (COUNTIF и OFFSET)

=COUNTIF(B4:B500,">"&OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),1,0)) 

фона (в случае, если кто-то интересно): Я использую это, чтобы проверить, правильно ли отсортированы значения в этом столбце (т.е. начиная с самого низкого значения и доходя до самого высокого значения). Если формула возвращает значение больше 1, я знаю, что список не полностью отсортирован.

+0

действительный ответ был найден, но просто из любопытства: почему (правда, более сложная) формула в вопросе не работает? – Christoph

ответ

4

Используйте SUMPRODUCT:

=SUMPRODUCT(1*(B4:B16>B5:B17)) 

![enter image description here

+0

Это, кажется, самое простое решение, поскольку оно не включает формулу массива (что означает, что я могу использовать ее как условие в формуле IF). Однако я не могу заставить его работать для меня. Формула массива работает отлично (но для ее вычисления требуется дополнительная ячейка). – Christoph

+0

, поэтому используйте ваши ссылки '= SUMPRODUCT (1 * (B4: B500

+0

В выражении IF() '= IF (SUMPRODUCT (1 * (B4: B500 0," Exists "," None ")' –

2

вы также можете использовать array formula.

{=SUM(N(A1:A13<A2:A14))} 

который проверит логическое условие для каждой ячейки в массиве, а затем преобразовать его в 0 или 1, используя N() функцию, а затем подвести итог. Я предпочитаю этот подход, потому что, в отличие от SUMPRODUCT(), вы можете использовать его с другими функциями, кроме SUM.

, пожалуйста, помните, что после вставки формулы массива в ячейку вы должны подтвердить ее, нажав CTRL+SHIFT+ENTER.

screenshot

+0

Если я хочу использовать формулу массива, чтобы проверить, отсортирован ли список, было бы еще проще использовать = AND (A1: A12 <= A2: A13) (который возвращает значение true/false Я понимаю, что это был не настоящий вопрос, но я подумал, что упомянул об этом для тех, у кого есть аналогичная проблема.) – Christoph