簡體   English   中英

根據Excel中第一列的變量查找行的最后一個值

[英]Finding last value of row depending on the first column's variable in Excel

我目前正在嘗試找到一個公式,該公式將為我提供與 T1 2022 相對應的總資產 (94054000000) 行的最后一個值。我的主要問題源於我試圖自動化這個過程而我沒有'不希望公式基於列標題“T1 2022”。

有沒有一個函數可以只搜索一個數組,找到“總資產”作為第一列的值,然后給我相應行的最后一個值? 也許這可以通過 Vlookup 來完成,但到目前為止我還沒有找到一種方法來完成我想做的事情。

我一直用來嘗試提取數據的兩個公式是。

=VLOOKUP("Total Assets",'10k B'!$A$2:$L$67,MATCH("T1 2022",'10k B'!$A$1:$L$1,0),0)

有沒有辦法在不指定我希望列值為 T1 2022 的情況下獲取 Total assets 行的最后一個值? 總資產行也從一家公司轉移到另一家公司,因此我更喜歡一個可以搜索數組的公式,而不是簡單地做類似的事情

=LOOKUP(2,2/(2:2<>""),2:2)

在此處輸入圖像描述

先感謝您 !

有很多方法。 每個都有不同的限制。 所以,想嘗試我自己的,確保它。

好的,很簡單,基礎,excel知識水平低的一個,但是對excel 2019+有效

4種方式(至少):

1.

因此,由於所有已知的方法(以下以及更多)都可以做到這一點,因此請使用它們的小字體(即“如果范圍內的單元格為空,則不會給出正確的結果”,“如果在行中重復則不起作用”,以及,“當最后一個單元格為 0 時不起作用” - 所以你需要考慮 - 我想要並決定制作一個非 vba 老式 Excel 公式,該公式將始終給出最后一個單元格的列號。這是 -

這種方法沒有任何假設。 不需要非空白單元格。 (即,即使您的行/范圍中有空白也可以使用。即使有重復項,也可以使用 0 作為最后一個單元格),不會因 0 或空單元格而失敗,並在沒有您的情況下為您提供范圍/行中最后使用的單元格的位置必須知道有關您的數據或最后一個單元格值的任何信息,無論它是什么值。 將單元格視為塊來處理並從左到最后填充/最后使用的單元格計數。

[根據您的 excel 版本,您可能需要將公式拆分為輔助單元格,或者使用為 2016 年早期制作的 vba udf 用於我在此處使用的 360 concat 函數。]

在一行中查找位置/最后使用的單元格的公式(無需填充空白單元格,或知道其范圍/大小,知道是否為空或非空單元格,或者根本不需要了解您的數據):

=IF(AND((LEN(A1))>0,ISERROR(LEN(LEFT(SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"|"&"@"&"|",(LEN(CONCAT(1:1&"|"))-LEN(SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"")))/LEN("|"&LOOKUP(2,1/(1:1<>""),1:1))),FIND("|"&"@"&"|",SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"|"&"@"&"|",(LEN(CONCAT(1:1&"|"))-LEN(SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"")))/LEN("|"&LOOKUP(2,1/(1:1<>""),1:1))),1)))-LEN(SUBSTITUTE(LEFT(SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"|"&"@"&"|",(LEN(CONCAT(1:1&"|"))-LEN(SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"")))/LEN("|"&LOOKUP(2,1/(1:1<>""),1:1))),FIND("|"&"@"&"|",SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"|"&"@"&"|",(LEN(CONCAT(1:1&"|"))-LEN(SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"")))/LEN("|"&LOOKUP(2,1/(1:1<>""),1:1))),1)),"|",""))+1)),1,LEN(LEFT(SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"|"&"@"&"|",(LEN(CONCAT(1:1&"|"))-LEN(SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"")))/LEN("|"&LOOKUP(2,1/(1:1<>""),1:1))),FIND("|"&"@"&"|",SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"|"&"@"&"|",(LEN(CONCAT(1:1&"|"))-LEN(SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"")))/LEN("|"&LOOKUP(2,1/(1:1<>""),1:1))),1)))-LEN(SUBSTITUTE(LEFT(SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"|"&"@"&"|",(LEN(CONCAT(1:1&"|"))-LEN(SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"")))/LEN("|"&LOOKUP(2,1/(1:1<>""),1:1))),FIND("|"&"@"&"|",SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"|"&"@"&"|",(LEN(CONCAT(1:1&"|"))-LEN(SUBSTITUTE(CONCAT(1:1&"|"),"|"&LOOKUP(2,1/(1:1<>""),1:1),"")))/LEN("|"&LOOKUP(2,1/(1:1<>""),1:1))),1)),"|",""))+1)

粘貼到您想要輸出的單元格中,它會返回您范圍內最后使用的列。

我確定某個地方的某個人可以制作/有一個明顯更好的,我想是用 lambdas 或 textjoins 制作的,並且我確定它確實存在於其他地方(但嘗試過詳盡地尋找它並且在網絡上什么都沒有*它似乎沒有在任何地方完成),所以但很高興我現在這樣做了(或者你可以只使用 vba )。 松了一口氣,我已經做到了。

您不需要了解任何有關數據或對數據執行任何操作(值、標題、單元格中的內容,或者是否有空白單元格、是否存在未填充的單元格,或者其中有什么)。 你不需要事先知道任何事情。 那是我確定的。 在被告知(並處理)早期版本的 excel 中的 counta / countblank 問題之后,我一直想用一個唯一的公式來做到這一點。

您唯一需要確定的是用於制作/推動它工作的特殊字符, | @ ,是真正獨一無二的,並且永遠不會出現在您的數據中,所以可以使用char(1)char(200)或對您來說特別的東西,可以肯定的是。

還有這個,

2.

索引匹配范圍內的最后一個值

但是當/如果最后一個值重復時不起作用。

=COLUMN(INDEX(1:1,MATCH(2,1/(1:1=LOOKUP(2,1/(1:1<>""),1:1)))))

這對我也很有效:

看到這個顯示范圍內最后一個非空單元格的列號(如果值不唯一)

=AGGREGATE(14,7,(COLUMN(1:1)-MIN(COLUMN(1:1))+1)/(1:1>0),1)

但是如果你的數據之后的最后一個值為 0 或 0,則“失敗”(取決於你看到它的方式)

4.

還有一個不記得了,但它就像一個查找 Mins 和 Sumproducts 以及兩者之間的乘法,你現在可能已經遇到它了。 我正在尋找幾年前我進行過詳細討論/訂婚的那個特定帖子,但我找不到它。 這里是類似的:

來自Excel 公式 - 最后一行動態范圍

=MAX((1:1=LOOKUP(2,1/(1:1<>""),1:1))*(COLUMN(1:1)))

僅當數據后為 0 時才按預期工作。 你可以通過用 char(34) 或類似的方法包裝那些 16384 類型值來解決這個問題。

因此,了解以上所有內容后,我決定/想要排在第 1 位,因為上述方法(以及其他未提及的方法)在“數據中或數據后為 0”和/或“空白/非空白單元格”的限制“問題對我來說很煩人,即使它們也有它們的用途。

所以想要一個獲取/查找最后使用的單元格,不管它是什么,不管你的數據是如何排列的,即使你甚至不知道它。 因此編號為 1。

您可以這樣做:

=INDEX(2:2,COUNTA(2:2))
  • 2:2 表示第 2 行
  • COUNTA返回一行中非空單元格的數量
  • INDEX返回值

請注意,上述方法假定直到最后一個單元格為止的所有單元格都是非空白的。

暫無
暫無

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

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