Excel: проверьте, что все столбцы имеют другое значение

Я хотел бы знать, как сравнить для каждой строки, что их (числовые) столбцы имеют разные значения или все они равны, и получить результат (либо логическое значение, либо 0/1) в другом столбце. Что-то вроде:

      colA colB colC   Result
row1  12   12   45     false
row2  67   67   67     true

Как я могу кратко написать эту формулу в Microsoft Excel? Обратите внимание, что количество столбцов может варьироваться, и, по крайней мере, у меня около 30 столбцов, поэтому я не хочу называть столбцы в формуле, а пишу что-то вроде for

Спасибо.


person juanmirocks    schedule 25.08.2011    source источник


Ответы (2)


Если вы хотите протестировать только числа, как насчет?

=MIN(B1:B30)=MAX(B1:B30)

(если ваш диапазон от 1 до 30)

for не существует в формуле Excel, лучший способ справиться с for loop - использовать формулы массива, но здесь это не подходит.

вы можете искать динамический диапазон, но я не вижу способа реализовать это легко в вашем случае

[EDIT] новая формула благодаря комментарию Excelll

=AND(MIN(B1:B30)=MAX(B1:B30),COUNTBLANK(B1:B30)=0)
person JMax    schedule 25.08.2011
comment
Совершенно верно! Хороший способ сделать это, спасибо. Я сам уже придумал другую формулу: =IF(STDEV(A3:D3)=0,1,0) // в любом случае я хотел сделать это для столбцов, а не для строк - person juanmirocks; 25.08.2011
comment
@jmcejuela: ваша формула основана на той же идее, тоже неплохая :) - person JMax; 25.08.2011
comment
Обратите внимание, что эта формула пропускает пустые ячейки. Например, 1 1 _ 1 вернет ИСТИНА. - person Excellll; 25.08.2011
comment
@Excelll: действительно, я создам другую формулу, которая позаботится об этом случае - person JMax; 25.08.2011
comment
@JMax На самом деле игнорирование или проверка пустых значений можно рассматривать как особенности, и вы даете обе формулы. Принято! :) - person juanmirocks; 26.08.2011

Если пустые ячейки в строке не являются проблемой, @JMax предлагает умное решение. Однако если вы хотите, чтобы пустая ячейка возвращала «ЛОЖЬ», вы можете использовать следующую формулу массива:

=AND(EXACT(A1,B1:C1))

Введите это как формулу массива, нажав Ctrl + Shift + Enter.

person Excellll    schedule 25.08.2011
comment
Он работает в моем Excel 2007. Может быть, проблема в версии? В любом случае, для вас project = отлично работает. {= И (A1 = B1: C1)} - person Excellll; 26.08.2011