excel vba求平均值_求VBA编程或EXCEL公式(函数)

最佳答案

=IF(AND(--SUBSTITUTE($C$2,MID($B4,1,1),"")=$C$2,--SUBSTITUTE($C$2,MID($B4,2,1),"")=$C$2),1,IF(AND(--SUBSTITUTE($C$2,MID($B4,1,1),"")<>$C$2,--SUBSTITUTE($C$2,MID($B4,2,1),"")<>$C$2),4,IF(--SUBSTITUTE($C$2,MID($B4,2,1),"")=$C$2,3,2)))
=IF(AND(--SUBSTITUTE($C$2,MID($B4,3,1),"")=$C$2,--SUBSTITUTE($C$2,MID($B4,4,1),"")=$C$2),1,IF(AND(--SUBSTITUTE($C$2,MID($B4,3,1),"")<>$C$2,--SUBSTITUTE($C$2,MID($B4,4,1),"")<>$C$2),4,IF(--SUBSTITUTE($C$2,MID($B4,4,1),"")=$C$2,3,2)))
追问:
为什么我复制第一条公式到C4得到结果是4?复制第二条公式到D4单元格得到结果也是4?
追问:
公式中单元格的引用地址是绝对引用吗?能否相对引用复制到其他单元格(例如C4单元格公式复制到C5、C6、C7...,D4单元格公式复制到D5、D6、D7...) 追答:
一、结果应该是1二、$C$2是绝对引用,$B4是混合引用,即列绝对、行相对。 追答:
其实两个公式可以合并成一个。即:把第一个公式中的MID($B4,1,1)和MID($B4,2,1)改为MID($B4,2*COLUMN(A1)-1,1)和MID($B4,2*COLUMN(A1),1),然后,右拉、下拉即可。 追答:
合并的公式还可以使用另一种形式表示。即,使用求余数函数——MOD直接计算出来:=MOD(10*(--SUBSTITUTE($C$2,MID($B4,2*COLUMN(A1)-1,1),"")<>$C$2)+1*(--SUBSTITUTE($C$2,MID($B4,2*COLUMN(A1),1),"")<>$C$2)+1,8) 追答:
以上公式使用的条件:C2单元格必须是数字,且前面不带0填补。
VBA代码如下:Sub duibideshu()Dim i%, j%, pd(1 To 4)i = 4DoFor j = 1 To 4If Range("C2") Like "*" & Mid(Range("B" & i), j, 1) & "*" Then pd(j) = 1 Else pd(j) = 0Next jRange("C" & i) = (10 * pd(1) + pd(2) + 1) Mod 8Range("D" & i) = (10 * pd(3) + pd(4) + 1) Mod 8i = i + 1Loop Until Range("B" & i) = ""End Sub
其他回答
其它网友回答:
这题应该有金币。
其它网友回答:
=CHOOSE((LEN($C$2)-LEN(SUBSTITUTE($C$2,MID($B4,(COLUMN(A1)-1)*2+1,1),""))>0)*3+(LEN($C$2)-LEN(SUBSTITUTE($C$2,MID($B4,(COLUMN(A1)-1)*2+2,1),""))>0)*2+1,1,1,2,3,4,4)
其它网友回答:
其它网友回答:
追答:
公式长度:164字符。目前最短。
追答:
公式思路:有第1位为3,有第2位为2,再加1,可能的结果为1、3、4、6 再替换为1、2、3、4