如何定位最后一個非空單元格? Excel二維表橫向查找最晚更新的非空值技巧

有讀者遇到這么個問題:有一個二維表,其中的單元格并未全部填充滿,如何根據(jù)行標題,向右查找出最新的值?
案例 一:
某公司近期因準備 IPO,要給員工配股,因此統(tǒng)計了 2016 年至今在職員工的職級,規(guī)則如下,如下圖 1 的 A 至 F 列數(shù)據(jù)表所示:
統(tǒng)計每個人自 2016 年起的職級,如果職級發(fā)生變化,則連續(xù)向右填充至最新的狀態(tài),如果之后職級無更新,則留空不需要再填,根據(jù) H2 單元格中填入的姓名,在 I2 單元格查找出該員工的最新職級。
效果如下圖 2 所示。
解決方案:
1. 將 J 列設(shè)置為輔助列,在 J2 單元格中輸入以下公式:
=COUNTA(INDEX(B2:F8,MATCH(H2,A2:A8,0),))
公式釋義:
MATCH(H2,A2:A8,0):在 A2:A8 區(qū)域查找 H2,并返回其在區(qū)域中的位置
INDEX(B2:F8,...,):
返回 B2:F8 區(qū)域中指定行、列的值;
行數(shù)為上述 match 函數(shù)的查找結(jié)果;
列數(shù)為空,即不限定列,表示查找出區(qū)域中姓名與 H2 內(nèi)容相同的所有單元格;
COUNTA(...):
COUNTA函數(shù)功能是返回參數(shù)列表中非空的單元格個數(shù);
即統(tǒng)計出 H2 單元格的員工在區(qū)域中的職級共有幾個非空單元格;
本例中,“諸葛鋼鐵”的職級共有 3 個單元格
2. 在 I2 單元格中輸入以下公式:
=INDEX(B2:F8,MATCH(H2,A2:A8,0),J2)
公式釋義:
MATCH(H2,A2:A8,0):再次使用 match 函數(shù)匹配出所需查找的姓名在 A2:A8 區(qū)域中的位置,并將其用作行號;
J2:將 J2 單元格,即上述輔助列的結(jié)果作為列號,即區(qū)域中的最后一列非空單元格;
INDEX(B2:F8,...,):用 index 函數(shù)在 B2:F8 區(qū)域中查找出行、列交叉位置的值
如果在 H2 中輸入其他姓名,I2 單元格的結(jié)果也會隨之變化。
案例二
一、使用MAX函數(shù)找到非空單元格的位置
MAX函數(shù)可以用來找到一列或一行所在的最大值,因此可以用它來找到非空單元格所在的位置。
=MAX(A:A)
上述公式將返回列A中最后一個非空單元格所在的行號。
同樣地,如果要查找最后一個非空單元格所在的列號,可以使用以下公式:
=MAX(1:1)
二、結(jié)合INDEX函數(shù)返回非空單元格的值
一旦找到了最后一個非空單元格的位置,就可以使用INDEX函數(shù)返回該單元格的值。
=INDEX(A:A,MAX(A:A))
上述公式將返回列A中最后一個非空單元格的值。
同樣地,如果要返回最后一個非空單元格所在的列的值,可以使用以下公式:
=INDEX(1:1,MAX(1:1))
三、使用VBA宏實現(xiàn)自動查找最后一個非空單元格
通過編寫VBA宏,可以實現(xiàn)在大型工作簿中自動查找最后一個非空單元格。
可以使用以下代碼實現(xiàn):
Sub LastNonBlankCell() Dim LastRow As Long Dim LastCol As Long Dim LastCell As Range '查找最后一個非空行 LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row '查找最后一個非空列 LastCol = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column '找到最后一個非空單元格 Set LastCell = Cells(LastRow, LastCol) '選中最后一個非空單元格 LastCell.Select End Sub
上述代碼中,F(xiàn)ind函數(shù)代表查找函數(shù),它可以對表格、行或列進行查找。SearchDirection參數(shù)表示查找的方向,SearchOrder參數(shù)則表示查找的順序。
四、結(jié)合OFFSET函數(shù)實現(xiàn)動態(tài)查找
如果需要動態(tài)查找最后一個非空單元格,可以結(jié)合OFFSET函數(shù)實現(xiàn)。
可以使用以下公式實現(xiàn)在列A中動態(tài)查找:
=OFFSET(A1,COUNTA(A:A)-1,0)
上述公式中,COUNTA函數(shù)可以用來計算列A中的非空單元格數(shù)量,-1操作可以確定最后一個非空單元格所在的行號(基于A1作為起始點)。OFFSET函數(shù)可以用來定位該單元格并返回其值。
同樣地,如果要動態(tài)查找最后一個非空單元格所在的列的值,可以使用以下公式:
=OFFSET(A1,0,COUNTA(1:1)-1)
相關(guān)文章
終于有專門的去重函數(shù)了! Excel數(shù)據(jù)去重復(fù)值神器UNIQUE函數(shù)詳解
今天我們來了解一個Excel中的新函數(shù)—— UNIQUE, 它可以說是很多人期盼已久的函數(shù),可以幫助我們從數(shù)據(jù)區(qū)域中自動提取唯一值,就是我們常說的去重,操作也非常簡單,下面2025-01-02Excel如何去重留最下方的行? 最基礎(chǔ)公式實現(xiàn)刪除重復(fù)值的技巧
Excel中經(jīng)常需要去掉重復(fù)值,該怎么操作呢?沒有高階Excel函數(shù)也沒事,去重留最下方的行,最基礎(chǔ)公式就行,詳細請看下文實例教程2025-01-02怎么查找15位以上數(shù)據(jù)重復(fù)? Excel超過15位的數(shù)字查找重復(fù)值的技巧
excel由于本身限制,數(shù)值格式只能識別15位以內(nèi)的數(shù)字,超過15位時,后面的數(shù)字自動被識別為“0”,這種情況怎么查重呢?詳細請看下文介紹2024-12-24文本數(shù)字怎么排序? Excel把文本翻譯成數(shù)值的技巧
excel中的文本數(shù)值是不能直接排序的,如果想要排序首先要幫助 Excel 把文本翻譯成數(shù)值,下面我們就來看看詳細的教程2024-12-15Excel怎么自由切換單位? 選擇單選鈕實現(xiàn)數(shù)值按不同單位顯示的技巧
今天我們來看看,在Excel中如何快速切換一列數(shù)據(jù)的單位,我們就用長度單位來示范一下,詳細請看下文實例介紹2024-12-15excel如何快速將數(shù)值批量擴大10倍? EXcel表格中數(shù)字擴大10倍的技巧
想要將電子表格中一列數(shù)據(jù)擴大10倍,該怎么批量實現(xiàn)呢?下面我們就來看看excel快速將數(shù)據(jù)擴大10倍的教程2024-09-28多個重復(fù)值如何快速只統(tǒng)計一次? excel重復(fù)的數(shù)據(jù)設(shè)置只統(tǒng)計一次教程
excel表格中重復(fù)的數(shù)據(jù)很多,統(tǒng)計數(shù)據(jù)的時候,想要將重復(fù)數(shù)據(jù)只統(tǒng)計一次,該怎么操作呢?下面我們就來看看詳細的教程2024-09-15- 今天跟大家分享10組日常工作中經(jīng)常需要用到的Excel公式組合,大家如果遇到類似的問題,更改數(shù)據(jù)區(qū)域,直接套用即可2023-01-04
excel怎么突出顯示重復(fù)值 excel設(shè)置突出顯示重復(fù)出現(xiàn)數(shù)值的方法
日常辦公中相信很多小伙伴們都會用到excel這款辦公軟件,那使用的過程中想突出顯示重復(fù)數(shù)值的設(shè)置方法,那小伙伴們都知道嗎?下面一起來了解一下吧2022-07-13excel突出重復(fù)值怎么操作?excel中突出顯示重復(fù)值操作方式
這篇文章主要介紹了excel突出重復(fù)值怎么操作?excel中突出顯示重復(fù)值操作方式的相關(guān)資料,需要的朋友可以參考下本文詳細內(nèi)容介紹2022-07-12