Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在仅需满足某些条件的数组公式中包含或-Excel第2部分_Arrays_Excel_Count - Fatal编程技术网

Arrays 如何在仅需满足某些条件的数组公式中包含或-Excel第2部分

Arrays 如何在仅需满足某些条件的数组公式中包含或-Excel第2部分,arrays,excel,count,Arrays,Excel,Count,这是这个的一个延伸,答案是 在最初的问题中,我想计算矩阵中包含至少满足一列特定条件的值的行数。引用的列是连续的(例如A1:D4),但这种情况需要索引非连续的列 以数据矩阵为例: A B C D E F G H 4 2 2 2 1 4 2 4 5 2 1 3 4 1 3 2 1 4 5 1 1 2 3 5 3 2 2 2 2 2 2 2 2 2 2 2 使用特定于列的标准: A列标准:>2 B列标准:>2 C栏标准:4 E列标准:>2 F列标准:>3 G列标准:>2 H列标准:

这是这个的一个延伸,答案是

在最初的问题中,我想计算矩阵中包含至少满足一列特定条件的值的行数。引用的列是连续的(例如A1:D4),但这种情况需要索引非连续的列

以数据矩阵为例:

A B C D E F G H
4 2 2 2 1 4 2 4
  5 2 1 3 4   1
3 2 1     4 5 1
1 2 3 5 3 2 2 2
2 2 2 2 2 2 2 2
使用特定于列的标准:

  • A列标准:>2
  • B列标准:>2
  • C栏标准:4
  • E列标准:>2
  • F列标准:>3
  • G列标准:>2
  • H列标准:>3
为了计算所有列都有值的行数,以及至少满足特定于列的标准,我们可以使用以下代码:

=SUM(N(MMULT)(IF(MMULT)(N(A1:H5=“”))、转置(列(A1:H5)^0))=0、计数(偏移量(A1,行(A1:H5)-MIN(行(A1:H5))、列(A1:H5)-MIN(列(列(A1:H5))、转置(列(列(A1:H5)^0))
…在处理空白时可能会有一些问题,因此替代方案:

=ROWS(A1:D4)-COUNTIFS(A1:A5,"<=2",B1:B5,"<=2",C1:C5,">=2",D1:D5,"<=4",E1:E5,">=2",F1:F5,">=3",G1:G5,">=2",H1:H5,">=3")-COUNT(1/N(MMULT(N(A1:H5=""),TRANSPOSE(COLUMN(A1:H5)^0))>0))
=行(A1:D4)-计数(A1:A5,“=3”,G1:G5,“>=2”,H1:H5,“>=3”)-计数(1/N(MMULT(N(A1:H5=”“),转置(列(A1:H5)^0))>0)
…就我所测试的而言,它似乎可以处理空白,无论其频率或位置如何

但是,如果只计算具有特定数据的行,而忽略其他列,会怎么样呢。此外,如果只对某些列的标准进行评估,该怎么办

让我们以上面的例子为例。我们的目标是统计i)某些列中的完整数据和ii)某些列中至少满足一个特定于列的标准的条目的行数

应包含完整数据的相关列为A:C和F:H。应评估其标准的列仅为A:C。解决方案是2,因为:

  • 总共有5行,但只有第1行、第3行、第4行和第5行符合条件,因为它们在A:C列和F:H列中有完整数据。第2行在A列和G列中缺少数据,这两行中的任何一行都应取消其包含的资格。请注意,尽管第3行的D列和E列中缺少数据,但仍然包含这些数据,因为这些列并不重要
  • 第1行和第3行符合指定的标准,因为i)它们在A:C和F:H列中有完整的数据,并且ii)至少有一个条目符合A、B和C列的标准之一;具体来说,第1行A列(4>2)和第3行A列(3>2)和C列(1<2)中的值。请注意,即使满足了两列的条件,这仍然只算作满足条件的一行

你的想法将是非常受欢迎的。也请在中对XOR LX表示一些爱-我相信你会发现他的解决方案很有帮助。

@PyjamaNinja鼓励我尝试开发我的“引理”来解决他们之前的问题

方法是:

A Count rows with entries in all specified columns (A-C and F-H)

B Count rows with entries in all specified columns that do _not_ meet any of the criteria in the columns being evaluated (A-C).

Subtract B from A.

=COUNTIFS(A1:A5,"<>",B1:B5,"<>",C1:C5,"<>",F1:F5,"<>",G1:G5,"<>",H1:H5,"<>")-COUNTIFS(A1:A5,"<=2",B1:B5,"<=2",C1:C5,">=2",F1:F5,"<>",G1:G5,"<>",H1:H5,"<>")
A对所有指定列(A-C和F-H)中包含条目的行进行计数
B统计所有指定列中的条目不符合所评估列中任何标准的行(A-C)。
从A中减去B。

=COUNTIFS(A1:A5,“,B1:B5,”,C1:C5,“,F1:F5,”,G1:G5,“,H1:H5,”)-COUNTIFS(A1:A5,“我想说这是跳出框框思考的一个主要示例!为了好玩,您会如何调整代码,以在行中计算至少不满足一个特定于列的标准的完整数据的实例。如果我没有弄错,请颠倒您所做的操作,例如,”这是我的一个相当详细的解决方案(但它避免了求和运算,因此计算效率可能更高):=COUNTIFS(A1:A5,“,B1:B5,”,G1:C5,“,F1:F5,”,G1:G5,“,H5:H1,”,COUNTIFS(A1:A5,“,B1:B5,”,C1:C5,“,F1:F5,”,C1:G5,“,H5,”,H1:H5,“,”,C1:H1:H5,“,”,COUNTIFS(A1:A1,”,A1:B5),“,”,A1:B5,“,,,”,A1:H5,““,C1:C5,”,F1:F5,”,G1:G5,“,H1:H5,”)-COUNTIFS(A1:A5,“啪,啪,啪,啪。令人印象深刻。非常有创意的解决方案。我不喜欢使用SUMIFs和COUNTIFS,但我必须承认我的解决方案大约有两倍长,而且几乎无法阅读。如果可以,我会投票两次。
A Count rows with entries in all specified columns (A-C and F-H)

B Count rows with entries in all specified columns that do _not_ meet any of the criteria in the columns being evaluated (A-C).

Subtract B from A.

=COUNTIFS(A1:A5,"<>",B1:B5,"<>",C1:C5,"<>",F1:F5,"<>",G1:G5,"<>",H1:H5,"<>")-COUNTIFS(A1:A5,"<=2",B1:B5,"<=2",C1:C5,">=2",F1:F5,"<>",G1:G5,"<>",H1:H5,"<>")