Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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
Excel 简化COUNTIFS公式_Excel_Excel Formula - Fatal编程技术网

Excel 简化COUNTIFS公式

Excel 简化COUNTIFS公式,excel,excel-formula,Excel,Excel Formula,A、B和C列表示测试是否完成(Y=是,N=否) 测试分为两部分,D列保存结果: D列的前两位保存A列的结果,即“AA--” D列中间的两位数字保存B列的结果,即“--BB--” D列的最后两位数字保存C列的结果,即“--CC” 我试图分别计算A、B和C列中包含Y的单元格,Y: 在D列的适当位置包含22、23或32 在D列的适当位置包含11、12、21、13或31 我有以下几种方法可以奏效,但我很好奇是否有更简单的方法可以达到同样的效果: A B C D 1 Y Y Y "

A、B和C列表示测试是否完成(Y=是,N=否)

测试分为两部分,D列保存结果:

  • D列的前两位保存A列的结果,即“AA--”
  • D列中间的两位数字保存B列的结果,即“--BB--”
  • D列的最后两位数字保存C列的结果,即“--CC”
我试图分别计算A、B和C列中包含Y的单元格,Y:

  • 在D列的适当位置包含22、23或32
  • 在D列的适当位置包含11、12、21、13或31
我有以下几种方法可以奏效,但我很好奇是否有更简单的方法可以达到同样的效果:

  A  B  C  D
1 Y  Y  Y  "332212"
2 Y  N  Y  "231223"
3 N  Y  Y  "122131"
4 Y  Y  Y  "231132"

如果我正确理解了您的问题,您可以使用mid函数分隔d列

=中间(d列,1,2)将给出d列中的前两位数字=中间(d列、2列、2列)第二个2列,等等


您可以从那里开始计数。

我建议将带有文本的ColumnD的副本解析为列(固定宽度:| nn | nn | nn |),并且:

在I1中:
=IF(和(A1=“Y”或(E1=22,E1=23,E1=32)),1“”

在N1中:
=IF(和(A1=“Y”或(E1=11,E1=12,E1=21,E1=13,E1=31)),1“”

每一个都复制到两列的右边和下面,然后类似于
=SUM(I1:K4)
=SUM(N1:P4)


创建电子表格时,您能将D分解为单独的列吗?我可以,但不希望我的想法可能不正确,但我认为
countif
函数不适用于公式中修改过的数据,除非您打算将该列分解为多个列?
=COUNTIFS(A,"=Y",D,"=22*")   + COUNTIFS(A,"=Y",D,"=23*")   + COUNTIFS(A,"=Y",D,"=32*")
+COUNTIFS(B,"=Y",D,"=??22*") + COUNTIFS(B,"=Y",D,"=??23*") + COUNTIFS(B,"=Y",D,"=??32*")
+COUNTIFS(C,"=Y",D,"=*22")   + COUNTIFS(C,"=Y",D,"=*23")   + COUNTIFS(C,"=Y",D,"=*32")

=COUNTIFS(A,"=Y",D,"=1*")    + COUNTIFS(A,"=Y",D,"=?1*")
+COUNTIFS(B,"=Y",D,"=???1*") + COUNTIFS(B,"=Y",D,"=???1*") 
+COUNTIFS(C,"=Y",D,"=*1")    + COUNTIFS(C,"=Y",D,"=*?1")