Excel - 在表中查找值以返回第 n 列值
Posted
技术标签:
【中文标题】Excel - 在表中查找值以返回第 n 列值【英文标题】:Excel - Find a value within a table to return nth column value 【发布时间】:2020-06-11 19:04:40 【问题描述】:我需要能够在 excel 中返回一个数组中的查找值,并返回与该查找值的行关联的最后一列。
在这个简化的示例中,我正在查找“B-C-D”,它可以在数组 A2:C5、第 2 列、第 3 行中找到,我需要它来返回与该值关联的 D 列中的值。
非常感谢
【问题讨论】:
【参考方案1】:如果查找值是唯一的,您可以使用SUMPRODUCT
:
=SUMPRODUCT((A8=A2:C5)*D2:D5)
如果不是,则使用AGGREGATE
获取第一个值:
=AGGREGATE(15,6,(D2:D5/(A9=A2:C5)),1)
【讨论】:
【参考方案2】:您可以使用=MAX((A8=A2:C5)*ROW(A2:C5))
查找与您的查找值匹配的元素的绝对行号。这样,您可以使用 D 列中的索引来找到答案:=INDEX(D:D,MAX((A8=A2:C5)*ROW(A2:C5)))
【讨论】:
【参考方案3】:将以下代码粘贴到 VB 编辑器的 ThisWorkbook 模块中。这样,对查找单元格的任何更改都会触发宏在 d 列中查找值并将其放入 b7 中。
Option Explicit
Public Sub Workbook_SheetChange(ByVal ws As Object, ByVal target As Range)
If (ws.Name) = Worksheets(1).Name Then
If Not Intersect(target, Range("a7")) Is Nothing Then
Dim rng As Range
Dim i As Variant
Set rng = Range("a1:d5")
For Each i In rng
If target.Value = i Then
Cells(7, "b").Value = Cells(i.Row, "d").Value
End If
Next i
End If
End If
End Sub
【讨论】:
以上是关于Excel - 在表中查找值以返回第 n 列值的主要内容,如果未能解决你的问题,请参考以下文章
Excel用啥函数查找并返回数据在表中的位置,就像按Ctrl+F,Excel2003版本