Excel:统计某个范围的行中出现的值
在Excel中,我需要一个公式,根据行是否包含特定值返回布尔向量。例如,一个范围(n×m矩阵)包含1到100的随机数。我想根据数字41是否在行中出现得到布尔向量。如果矩阵被命名为“矩阵”,则结果将是一个长度为Excel:统计某个范围的行中出现的值,excel,matrix,excel-formula,boolean,row,Excel,Matrix,Excel Formula,Boolean,Row,在Excel中,我需要一个公式,根据行是否包含特定值返回布尔向量。例如,一个范围(n×m矩阵)包含1到100的随机数。我想根据数字41是否在行中出现得到布尔向量。如果矩阵被命名为“矩阵”,则结果将是一个长度为行(矩阵)的向量 =AGGREGATE(2,6,[Array]=41) 您可以使用索引公式获取布尔值数组,如果愿意,可以在另一个公式中使用该数组 INDEX(A2:O2=41,) MMULT(N(范围=A1),转置(列(范围))>0 其中A1包含您的搜索值,例如41 根据需要修改范围 这
行(矩阵)
的向量
=AGGREGATE(2,6,[Array]=41)
您可以使用索引公式获取布尔值数组,如果愿意,可以在另一个公式中使用该数组
INDEX(A2:O2=41,)
MMULT(N(范围=A1),转置(列(范围))>0
其中A1
包含您的搜索值,例如41
根据需要修改范围
这可能需要使用CSE
提交,具体取决于所使用的构造
作为示例,让我们假设范围在这里B1:F4
,具有以下值:
40444140
44 40 44
44 44 43 40 41
43424445
本部分:
B1:F4=A1
只需返回布尔值TRUE
/FALSE
项数组,以确定范围内的每个项是否等于A1
中的值,即:
{FALSE,FALSE,TRUE,TRUE,FALSE;FALSE,FALSE,FALSE,FALSE,TRUE;FALSE,FALSE,FALSE,FALSE,FALSE}
然后,N
函数将这些布尔值强制转换为它们的等效数值,即TRUE
=1
,FALSE
=0
,以便:
N(B1:F4=A1)
给出:
{0,0,1,1,0;0,0,0,0,0;0,0,0,0,1;0,0,0,0,0}
我们可以看到1出现在第1行和第3行中(在第1行中不止一次)。由于这是一个4行乘5列的数组,因此将矩阵与5行乘1列的数组(其项为非零)相乘将生成一个4行乘1列的数组,其中每行中的项受矩阵乘法定律的约束,因此:
MMULT(N(B1:F4=A1),转置(列(B1:F4)))
即:
MMULT({0,0,1,1,0;0,0,0,0,0;0,0,0,1;0,0,0,0}),转置(列(B1:F4))
i、 e:
MMULT({0,0,1,1,0;0,0,0,0,0;0,0,0,1;0,0,0,0,0}),转置({2,3,4,5,6}))
i、 e:
MMULT({0,0,1,1,0;0,0,0,0,0;0,0,0,0,1;0,0,0,0},{2;3;4;5;6})
即:
{9;0;6;0}
最后,我们检查这些条目中哪些是非零的,以便:
MMULT(N(B1:F4=A1),转置(列(B1:F4)))>0
即:
{9;0;6;0}>0
给出:
{TRUE;FALSE;TRUE;FALSE}
关于?否。不返回布尔值数组。您将如何处理该布尔值数组?您会在另一个公式中使用它吗?不会。您的示例已经是一行并返回一行。我想要一个n×m矩阵,它为每一行返回一个布尔值。那么数据范围和矩阵范围是什么?结果应该是一个长度行的向量(A2:O20)。否。您的示例返回与[array]大小相同的范围。我有一个n乘m的矩阵。我想要一个公式,返回大小为行([array])的布尔向量。我向你们鞠躬。惊人的答案
MMULT
不在解决此问题的范围内。你能解释一下你的答案吗,特别是我不懂转置(列(范围))
。