最佳答案
=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
最佳答案由网友 i36_0 提供