用于计算多个列范围的Excel条件公式

kxeu7u2r  于 2023-01-27  发布在  其他
关注(0)|答案(1)|浏览(159)

抱歉,如果解决方案已经可用,我已经搜索了几个小时!
我所面临的问题是,把条件公式的基础上列的范围,例如:

Conditions:

1) A1=0, B1=0, C1=0, D1=0 = Result Last Four columns are zero
2) A1=1, B1=0, C1=0, D1=0 = Result Last Three columns are zero
3) A1=1, B1=1, C1=0, D1=0 = Result Last Two columns are zero
4) A1=1, B1=1, C1=1, D1=0 = Result Last column is zero
5) A1=0, B1=0, C1=1, D1=0 = Result Last column is zero
6) A1=0, B1=1, C1=0, D1=0 = Result Last Two columns are zero
7) A1=0, B1=0, C1=0, D1=1 = Result Last Column is Not Empty

上述结果中的陷阱是条件应该从右到左考虑列零。

4ioopgfo

4ioopgfo1#

您可以:
1.创建一个命名范围(我称之为Sentences)来存储你想要的硬编码句子,下面是一个例子(不要在命名范围中包含标题):
| 硬编码句子|
| - ------|
| 四列为零|
| 最后一列不为空|
| 三列为零|
| 前两列为零|
| 三列为零|
| 两列为零|
| 两列为零|
| 一列为零|
| 三列为零|
| 两列为零|
| 两列为零|
| 一列为零|
| 最后两列为零|
| 一列为零|
| 最后一列为零|
| 没有列为零|
1.应用此数组公式(使用Ctrl + Shift + Enter进行验证):
=INDEX(Sentences, 1+SUM(2^(COLUMNS(A1:D1)-COLUMN(A1:D1))*(A1:D1<>0)))
说明:该公式将空单元计数为位(权重:1,2,4,8),将这些位加在一起以创建index,然后在计算出的index处查看句子的命名范围。
显然,如果我键入的值不适合您的需要,您必须编辑命名范围中的值。
编辑:您还可以仅处理范围中的特殊情况,而将一般情况留给更通用的公式处理。
所谓特殊情况,我指的是像"最后一列不为空"(只适用于最后一列)这样的事情,而不是"一列为零"(适用于所有列)。
只要是一般情况,您可以将指定范围的某些单元格留空,并让下面的公式完成这项工作。

=IF(
LEN(INDEX(Sentences, 1+SUM(2^(COLUMNS(A1:D1)-COLUMN(A1:D1))*(A1:D1<>0)))) > 0,
INDEX(Sentences, 1+SUM(2^(COLUMNS(A1:D1)-COLUMN(A1:D1))*(A1:D1<>0))),
INDEX({"All columns are zero","Three columns are zero","Two columns are zero","1 column is zero"}, 1+COUNT(IF(A1:D1=0,1)))
)

相关问题