excel 在 table 和 return 另一个值中搜索值

excel search value in a table and return another value

我需要在table中搜索一个值并返回相应行的最后一列的值(如果要简化功能,我可以横跨行和列)。例如,我有以下 table,当我给出搜索值 75 时,我希望得到值 204(同一行最后一列的值)。最后一列也可以移动到第一列,以防它有助于功能。我尝试使用索引、匹配和查找,但这些函数需要一个列数组来搜索。

41  42  43  44  61  62  63  64  81  82  83  84  101 102 103 104 201
45  46  47  48  65  66  67  68  85  86  87  88  105 106 107 108 202
49  50  51  52  69  70  71  72  89  90  91  92  109 110 111 112 203
53  54  55  56  73  74  75  76  93  94  95  96  113 114 115 116 204
57  58  59  60  77  78  79  80  97  98  99  100 117 118 119 120 205
121 122 123 124 141 142 143 144 161 162 163 164 181 182 183 184 216
125 126 127 128 145 146 147 148 165 166 167 168 185 186 187 188 217
129 130 131 132 149 150 151 152 169 170 171 172 189 190 191 192 218
133 134 135 136 153 154 155 156 173 174 175 176 193 194 195 196 219

我会像这样将 index() 与 match() 一起使用:

因此,使用 iferror() 和 match() 来检查每一列,return 找到位置,如果找不到则空白。

然后使用 index() 和 max() 获取找到的位置和 return Q 列的值。

单元格 A15 中拖到 P15 的公式为

IFERROR(MATCH($S,A4:A12,0),"")

单元格 T2 中的公式为

INDEX(Q4:Q12,MAX(A15:P15))

单元格 S2 是您要查找的值。

=INDEX($Q:$Q,AGGREGATE(14,6,1/($A:$P=R12)*ROW($A:$P),1))

如果 table 的第一行不是第 1 行,请参阅下面的注释进行调整

工作原理:

  • ($A:$P=R12) returns FALSE 的二维数组,在相等点有一个 TRUE
  • 1/... returns #DIV/0! 的数组和 TRUE
  • 1
  • 乘以ROW(...)得到行号
  • 使用那个行号来INDEX变成table。
    • 注意,如果table不是从第1行开始,则需要从计算的行号中减去table的第一行(-1)。
    • 如果您使用 Table 或命名范围,这可以动态化。

编辑:更简单的公式

如果您只需要一个结果(例如 table 中的所有条目都是唯一的,您可以使用:

=INDEX($Q:$Q,MAX(($A:$P=R12)*ROW($A:$P)))