数据源
a1  a2  a3  a4
2.5  100  PL    M+FM
2.5  125  PL    FM+M
2.5  150  PL    M
2.5  150  PL    FM+M
4  40  WN    RF+RF
6.3  15  SO        RF+RF常用的方法是
  Sql = "Select a1,a2,a3,a4,count(a3) from [PipeTable$] "
  Sql = Sql & group by a3,a1,a2,a4"
目的通过字符分离
  2.5 100 PL M --统计有多少个
  2.5 100 PL FM --统计有多少个

解决方案 »

  1.   

    重新做了个数据源
    A1       A2
    150         M+FM
    150         M+FM
    150         FM+M
    150         FM+M
    150          M
    150         FM
    采用 Union All 技术,程序如下
      t1 = "iif(InStr(a2, '+')>0,Left(a2,InStr(Trim(a2), '+') - 1),trim(a2))"
      t2 = "iif(InStr(a2, '+')>0,Right(a2,len(trim(a2))-InStr(Trim(a2), '+') ) )"
      Sql = "Select a1," & t1 & ",Count(" & t1 & ")" '& "," & t2 & " "
      Sql = Sql & " from [Sheet1$] "
      
      Sql = Sql & " group by a2,a1"
      Sql = Sql & " union ALL "
      Sql = Sql & "Select a1," & t2 & ",Count(" & t2 & ")"
      Sql = Sql & " from [Sheet1$] "  
      Sql = Sql & " group by a2,a1"所得结果与目标期望值比较接近.
    字符分离结果:  150, FM, 1, 
    字符分离结果:  150, FM, 2, 
    字符分离结果:  150, M, 1, 
    字符分离结果:  150, M, 2, 
    字符分离结果:  150, , 0, 
    字符分离结果:  150, M, 2, 
    字符分离结果:  150, , 0, 
    字符分离结果:  150, FM, 2, 
    请教各位大侠的问题
    如何对处理后的结果用SQL再进行count所结果为
    150 FM 统计数为5
    150 M  统计数为5
    也就是select 再嵌套上面的SQL语句.
    谢谢