Как сравнить каждую вторую ячейку столбца с определенным значением?

У меня проблема в Excel 2007. Мне нужно сравнить одно значение - букву "C" - с диапазоном ячеек, которые находятся в одной строке. Проблема в том, что значения должны быть в каждой второй ячейке.

Итак, если у меня есть такая строка - C 434 C 324 C 3453 - в ячейке в конце должно быть написано - OK И если у меня есть такая строка - C 22 B 665 C 8877 - она ​​должна сказать - ошибка как не все C.

Должно быть сделано как формула, а не VBA.

Итак, вопрос в том, можно ли проверить, содержит ли каждая другая ячейка в строке (диапазон) значение C, и вывести значение на основе этого.

ПС! Слишком много строк, чтобы сделать это вручную, как это (псевдокод) =IF(AND(A1="C"; A3="C");"ok";"ошибка")

Спасибо


person Marten    schedule 02.09.2010    source источник


Ответы (2)


Вот что вы можете попробовать. Это требует использования некоторых дополнительных ячеек, но оно должно выполнять свою работу. Допустим, вы начинаете с этих данных:

Col_A  Col_B  Col_C  Col_D  Col_E  Col_F  Col_G  Col_H  Col_I
C 434  xxx    C 435  xxx    C 436  xxx    C 437  xxx    C 435
C 435  xxx    C 436  xxx    C 437  xxx    C 438  xxx    C 436
C 436  xxx    C 437  xxx    C 438  xxx    C 439  xxx    C 437
C 437  xxx    B 438  xxx    C 439  xxx    C 440  xxx    C 438
C 438  xxx    C 439  xxx    C 440  xxx    C 441  xxx    C 439
C 439  xxx    C 440  xxx    C 441  xxx    B 442  xxx    C 440
C 440  xxx    C 441  xxx    C 442  xxx    C 443  xxx    C 441
C 441  xxx    C 442  xxx    C 443  xxx    C 444  xxx    C 442
C 442  xxx    C 443  xxx    C 444  xxx    C 445  xxx    C 443
C 443  xxx    B 444  xxx    C 445  xxx    C 446  xxx    B 444

... скажем, «Col_A» находится в ячейке A1, а фактические данные начинаются в ячейке A2. Выберите ячейку A13 и введите следующую формулу:

=IF(OR(LEFT(A2)="C", MOD(COLUMN(A2),2)=0),1,0)

Теперь нажмите A13 и перетащите вправо, чтобы расширить его до I13. Перетащите весь этот диапазон вниз до A22:I22. Теперь у вас должно быть поле из единиц и нулей в этих ячейках.

Затем щелкните ячейку K2 и введите формулу:

=IF(PRODUCT(A13:I13),"Valid","Not valid!")

Щелкните ячейку K2 и перетащите ее вниз, чтобы расширить ее до K11.

Вот и все; вы можете скрыть блок ячеек со всеми единицами и нулями, если хотите.

Отказ от ответственности: проверено только в OO Calc. Хотя должно работать и в Excel.

person Dagg Nabbit    schedule 03.09.2010
comment
Спасибо, нужно было немного изменить его, чтобы он делал больше того, что я хотел, но это была божья помощь :) - person Marten; 04.09.2010

Я мог бы попробовать что-то вроде этого:

=IF(OR(LEFT(A2,1)<>"C",LEFT(B2,1)<>"C",LEFT(C2,1)<>"C",LEFT(D2,1)<>"C",LEFT(E2,1)<>"C"),"Not Valid","Valid")

Col_A Col_B Col_C Col_D Col_E VALIDATION
C 434 C 435 C 436 C 437 C 435 Valid
C 435 C 436 C 437 C 438 C 436 Valid
C 436 C 437 C 438 C 439 C 437 Действителен
C 437 B 438 C 439 C 440 C 438 Недействителен
C 438 C 439 C 440 C 441 C 439 Действителен
C 439 C 440 C 441 B 442 C 440 Недействителен
C 440 C 441 C 442 C 443 C 441 Valid
C 441 C 442 C 443 C 444 C 442 Valid
C 442 C 443 C 444 C 445 C 443 Valid
C 443 B 444 C 445 C 446 B 444 Недействительно

При этом вам не нужно добавлять столбцы, потому что проверяется каждый string в одной и той же формуле.

person Rafa Barragan    schedule 27.08.2014