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

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

测试分为两部分,D 列包含结果:

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

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

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

我有以下工作,但我很好奇是否有更简单的方法来完成同样的事情:

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

2 回答 2

2

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

=mid(column d, 1, 2) 将为您提供 d 列中的前两位数字.... =mid( column d, 2, 2) 第二个 2 等。

你可以从那里数。

于 2013-09-20T19:34:44.623 回答
1

I suggest parsing a copy of ColumnD with Text to Columns (Fixed width: "|nn|nn|nn| ) and:

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

each copied across two columns to the right and down to suit, then something like =SUM(I1:K4) and =SUM(N1:P4).

SO18924286 example

于 2013-09-20T21:32:21.937 回答