簡體   English   中英

MS Excel vlookup 一個單元格,獲取行,從該行獲取最右邊的列

[英]MS Excel vlookup a cell, get row, get the rightmost column from that row

類似的問題似乎是this 但是在我的情況下,我需要一個額外的步驟(我認為)。 我無法完成的是結合這兩個步驟。

假設數據結構如下

        Col A | Col B | Col C | Col D | Col E | 
Row 1   Val1  | Val2  | Val3  |
Row 2   Val4  | Val5  | Val6  |
Row 3   Val7  | Val8  | Val9  | Val10 | Val11

我正在尋找的公式應該按照以下場景返回結果。

1)在一個單獨的單元格中,如果我輸入一個值(Val4); Col A中的Val4執行 VLOOKUP(位於第 2 行),然后從Col C返回最右邊的值,即Val6

2)在一個單獨的單元格中,如果我輸入一個值(Val7); Col A中的Val7執行 VLOOKUP(位於第 3 行),然后返回最右邊的值,即Col D中的Val10

基本上,列值可能會向右增長。 所以我需要查找第一個值-> 獲取行-> 獲取同一行中最右邊的值....

任何幫助深表感謝。

編輯 - 1

在這里給出的指導之后,我找到了解決方案的一半。 首先要提到的是,一行中的值可以增長(在我的示例數據集中,它上升到 D 列。但它可以增長到任何行的 E、F 列等)

現在,讓我們假設我正在搜索的值在H1中。 我把Val4放在 H1 和公式中:

OFFSET(A1,MATCH($H$1,$A:$A,0),2,1,1). //Since I have hard coded 3rd parameter to 2; it'll give me Val6 (the last column in that row)

這里通過MATCH($H$1,$A:$A,0)它返回該行。 在我的示例中,它將返回第 2 行,因為我正在搜索 Val4(在 H1 中)

現在,我應該搜索第 2 行中的列並在ColC中停止,因為它是第 2 行中的最后一個值。

在 OFFSET function 中,第三個參數查找列數。 因此,如果我可以根據行改變該值; 問題解決了。 例如; 如果我在我的 OFFSET 公式中搜索 Val7,它會首先找到第 3 行。但現在在 OFFSET 中,第 3 個參數必須為 4(以獲取最后一個值 - Val11)。

當我使用 MATCH($H$1,$A:$A,0); 搜索行時如果我可以將該行傳遞給 CountA() 問題解決如下:

CountA(MATCH($H$1,$A:$A,0) : MATCH($H$1,$A:$A,0))

這是無效的。 所以現在嘗試使用 INDIRECT() function 像:

COUNTA(INDIRECT(MATCH($H$1,$A:$A,0)&":"&MATCH($H$1,$A:$A,0)))

它基本上將 row:row 構建為字符串並提供給 CountA()

這本身就可以工作,但是當我將它放到 OFFSET() function 3rd 參數時,它不能按應有的方式工作。

編輯 - 2(答案)

讓它與公式一起使用

OFFSET(A1,MATCH($H$1,$A:$A,0)-1,COUNTA(INDIRECT(MATCH($H$1,$A:$A,0)&":"&MATCH($H$1,$A:$A,0)))-1,1,1)

唯一的問題是在連續搜索列時,如果您有一個空單元格,它將不會使用 COUNTA().... 進一步搜索,但否則它會按照我想要的方式工作

在此處輸入圖像描述

B5中的公式:

=INDEX($A$1:$D$3,MATCH(A5;$A$1:$A$3;0),COUNTA(INDEX(A:A,MATCH(A5,$A$1:$A$3,0)):INDEX(D:D,MATCH(A5,$A$1:$A$3,0))))

這是可行的,假設一行本身沒有空單元格(數據中的空白)。 可能有一個更短的公式......

假設您的數據位於A1:D3

放入A5:A6的標准,(布局類似於 JvdV 的表格)

如果您的數據是文本值,則將B5中的公式復制下來:

=LOOKUP("zzz",INDEX($1:$3,SUMPRODUCT(($1:$3=A5)*ROW(A$1:A$3)),0))

如果您的數據是數值,則將B5中的公式復制下來:

=LOOKUP(9.9E+307,INDEX($1:$3,SUMPRODUCT(($1:$3=A5)*ROW(A$1:A$3)),0))

如果您的數據混合在文本+數值中,則將B5中的公式復制下來:

=INDEX($1:$3,SUMPRODUCT(($1:$3=A5)*ROW(A$1:A$3)),AGGREGATE(14,6,COLUMN($1:$1)/(INDEX($1:$3,SUMPRODUCT(($1:$3=A5)*ROW(A$1:A$3)),0)<>""),1))

讓它與公式一起使用

OFFSET(A1,MATCH($H$1,$A:$A,0)-1,COUNTA(INDIRECT(MATCH($H$1,$A:$A,0)&":"&MATCH($H$1,$A:$A,0)))-1,1,1)

唯一的問題是在連續搜索列時,如果您有一個空單元格,它將不會使用 COUNTA().... 進一步搜索,但否則它會按照我想要的方式工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM