亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
1394
2025-03-31
excel圖表如何查找指定數據
excel圖表如何查找指定數據?用一個示例來說明,如下圖1所示,是一個記錄員工值班日期的表,在安排每天的值班時,需要查看員工最近一次值班的日期,以免值班時間隔得太近。例如,可以查到張無忌最近是2019年9月9日值班,因此下一天的值班就不會安排張無忌了。現在就是要求給出張無忌后,獲得他最近值班的日期2019年9月9日,對于其他的員工也是這樣。
圖1
下面,我們分別使用公式和VBA來解決。
使用INDEX+SUMPRODUCT+MAX+ROW函數
公式如下:
=INDEX($B$2:$B$10,SUMPRODUCT(MAX(ROW($A$2:$A$10)*($D$2=$A$2:$A$10))-1))
公式先比較單元格D2中的值與單元格區域A2:A10中的值,如果相同返回TRUE,不相同則返回FALSE,得到一個由TRUE和FALSE組成的數組,然后與A2:A10所在的行號組成的數組相乘,得到一個由行號和0組成的數組,MAX函數獲取這個數組的最大值,也就是與單元格D2中的值相同的數據在A2:A10中的最后一個位置,減去1是因為查找的是B2:B10中的值,是從第2行開始的,得到要查找的值在B2:B10中的位置,然后INDEX函數獲取相應的值。之所以使用SUMPRODUCT函數,是因為該函數可以處理數組公式,而無須在公式輸入完成后按Ctrl+Shift+Enter組合鍵。
結果如下圖2所示。
圖2
使用LOOKUP函數
公式如下:
=LOOKUP(2,1/($A$2:$A$10=$D$2),$B$2:$B$10)
公式中,比較A2:A10與D2中的值,相等返回TRUE,不相等返回FALSE,得到由TRUE和FALSE組成的數組,然后使用1除以這個數組,得到由1和錯誤值#DIV/0!組成的數組,由于這個數組中找不到2,LOOKUP函數在數組中一直查找,直至最后一個比2小的最大值,也就是數組中的最后一個1,返回B2:B10中對應的值,也就是要查找的數據在列表中最后的值。
結果如下圖3所示。
圖3
使用VBA自定義函數
在VBE中輸入下面的代碼:
Function LookupLastItem(LookupValue AsString, _
LookupRange As Range, _
ColNum As Integer)
Dim i As Long
With LookupRange
For i = .Columns(1).Cells.Count To 1 Step -1
If LookupValue = .Cells(i, 1) Then
LookupLastItem = .Cells(i, ColNum)
Exit Function
End If
Next i
End With
End Function
然后,在工作表中像Excel內置函數一樣,使用公式:
=LookupLastItem($D$2,$A$2:$B$10,2)
結果如下圖4所示。
圖4
無論使用上述哪種方法,最終的結果如下圖5所示。
圖5
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。