如何使用函数将单元格值插入另一个单元格?

时间:2015-03-27 17:41:31

标签: excel vba excel-vba excel-formula

enter image description here

我想知道是否有任何公式可以让我这样做: 我希望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细胞并丢弃其他所有条件。

2 个答案:

答案 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()