Как сравнить каждую вторую ячейку столбца с определенным значением? - PullRequest
1 голос
/ 03 сентября 2010

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

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

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

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

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 03 сентября 2010

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

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, хотя.

0 голосов
/ 27 августа 2014

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

=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 Действительный
C 435 C 436 C 437 C 438 C 436 Действительный
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 Действительный
C 441 C 442 C 443 C 444 C 442 Действительный
C 442 C 443 C 444 C 445 C 443 Действительный
C 443 B 444 C 445 C 446 B 444 Недействительно

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

...