1

我在 Excel 2007 中遇到问题。我需要将一个值(字母“C”)与一行上的一系列单元格进行比较。问题是这些值应该在每个其他单元格中。

因此,如果我有这样的一行 - C 434 C 324 C 3453 - 最后应该在一个单元格中说 - 好的 如​​果我有这样的一行 - C 22 B 665 C 8877 - 它应该说 - 错误不是都是C。

应该作为公式而不是 VBA 来完成。

所以问题是是否可以检查一行中的每个其他单元格(一个范围)是否包含一个值 C 并基于该值输出一个值。

PS!像这样手动执行的行太多(伪代码)=IF(AND(A1="C"; A3="C");"ok";"error")

谢谢

4

2 回答 2

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”在 cellA1中,实际数据从 cell 开始A2。选择单元格A13并输入以下公式:

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

现在单击A13并向右拖动以将其扩展为I13. 将整个范围向下拖动到A22:I22。您现在应该在这些单元格中有一个由 1 和 0 组成的字段。

接下来,单击单元格K2并输入公式:

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

单击单元格K2并将其向下拖动以将其扩展为K11.

而已; 如果需要,您可以隐藏带有所有 1 和 0 的单元格块。

免责声明:仅在 OO Calc 中测试。不过也应该在 Excel 中工作。

于 2010-09-03T00:12:58.340 回答
0

我可以尝试这样的事情:

=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 验证
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在同一个公式中验证每个。

于 2014-08-27T15:07:39.797 回答