我想知道是否有任何公式可以让我这样做: 我希望Excel读取H5中的任何内容(12-52)并检查以下条件:
If H5 equals H4 then take whatever is in N4 and insert it into I5
If H5 equals O4 then take whatever is in U4 and insert it into I5
If H5 equals V4 then take whatever is in AB4 and insert it into I5
If H5 equals AC4 then take whatever is in AI4 and insert it into I5
正如您所看到的,H5等于AC4,因此从AI4细胞取80值并将其插入I5细胞并丢弃其他所有条件。
答案 0 :(得分:1)
= IF(H5 = H4,N4,IF(H5 = O4,U4,IF(H5 = V4,AB4,IF(H5 = AC4,AI4,0))))
答案 1 :(得分:0)
在I5中编写以下功能
=if(h5=h4,n4,if(h5=o4,u4,if(h5=v4,ab4,if(h5=ac4,ai4,"error"))))
如果它无法识别是否尝试使用iif替换if
实际上,我将所需的值放在truepart中,并使用falsepart作为下一个"如果"函数直到你没有声明应该去哪个值的最后一部分我冒昧地把它当作ERROR
更新:获取最大值的功能
=max(if(h5=h4,n4,-10000),if(h5=v4,ab4,-10000),if(h5=o4,u4,-10000),if(h5=ac4,ai4,-10000))
这里我假设-10000是你永远不会收到的值...而且我不能在这里取错误字符串,因为max必须处理它。
根据我对您的要求的分析,宏代码没有问题:
Option Explicit
Function mymax() As String
Dim value As String
Dim r, c, pos
value = -1000
c = ActiveCell.Column-6
r = ActiveCell.Row
For i = c To 299
pos = 1 + i * 7
If Cells(r, c) = Cells(r - 1, pos) Then
If value < Cells(r - 1, pos+6) Then
value = Cells(r - 1, pos+6)
End If
Next
If value = -1000 Then
max = "ERROR"
Else
max = value
End If
End Function
你打电话给这个函数调用宏生命任何其他excel函数:
=mymax()