简化COUNTIFS公式

ABCD 1 YYY "332212" 2 YNY "231223" 3 NYY "122131" 4 YYY "231132" 

列A,B和C指示testing是否完成(Y =是,N =否)。

testing分为两部分,D列为结果:

  • 列D的前两位数字保存列A的结果,即“AA —-”
  • 列D的中间两位数字保存列B的结果,即“–BB–”
  • 列D的最后两位数字保存列C的结果,即“—- CC”

我正试图分别计算列A,B和C中包含Y的单元格:

  • 包含22,23或32,在列D的适当位置
  • 包含11,12,21,13或31列在D列的适当位置

我有以下的工作,但我很好奇是否有一个简单的方法来实现相同的:

 =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") 

如果我理解你的问题是正确的,你可以使用中间函数来分隔列d

= mid(d,1,2列)将给出d列中的前两位数字… = mid(第d列,第2列),第2列等等

你可以从那里算数。

我build议parsing一个ColumnD的副本,以文本为列(固定宽度“| nn | nn | nn |)”和“

在I1: =IF(AND(A1="Y",OR(E1=22,E1=23,E1=32)),1,"")
在N1: =IF(AND(A1="Y",OR(E1=11,E1=12,E1=21,E1=13,E1=31)),1,"")

每个都复制到两列,以适应,然后像=SUM(I1:K4)=SUM(N1:P4)

SO18924286例子