返回列表 上一主題 發帖

[發問] 請問能否指定某欄位只抓最新欄位的數據?

[發問] 請問能否指定某欄位只抓最新欄位的數據?

請問能否指定某欄位只抓最新欄位的數據?
例如:讓 I2 因A:A日期的變動,而跟著H:H的數量自動更新?
d.png
2015-1-29 11:05

回復 1# 997531
儲存格I2輸入
=OFFSET($H$1,COUNT($H:$H),)
請參考!

TOP

回復 2# p212


    非常感謝!
對我這種沒學過Excel的新手來說,
這個論壇真是一個很棒的地方。
能讓我學到很多新的公式!

TOP

首先,
先感謝P212大大當初提出的公式,
這三年來應用的很方便。
甚至已把公式改為由工[作表二]讀取[工作表一]
=OFFSET(庫存!$H$2,COUNT(庫存!$H:$H),)

但是...
現在遇到新的問題。
現在要在表二讀取表一裡F欄[出貨數量]的最新一列,
但是因為中間有空白儲存格的關係,
所以會造成上面的公式產生錯誤。
請問各位大大有其他的解法嗎?

TOP

有範本嗎?!

TOP

回復 5# a5007185


    試作.rar (22.19 KB)
上面這個是範本

目前遇到的問題是,
在[庫存表]這工作表沒辦法用=OFFSET公式,
去讀取[登記表]裡的"進貨"及"領用"數量。

TOP

回復 6# 997531

目前我想到的最佳解必須開啟巨集,
首先你先按下列步驟開啟開發者模式,
https://ppt.cc/fU3nhx
然後將下面這段程式碼貼在模組中。
  1. Function RowLastData(SheetName As String, PT As Range)
  2.     RowLastData= Sheets(SheetName).Cells(Cells.Rows.Count, PT.Column).End(xlUp)
  3. End Function
複製代碼
VBA.gif
2018-8-9 11:28

這個是自創函數,
主要功能是回傳該儲存格所屬的欄位中最後一筆的資料
RowLastData(工作表名稱,儲存格)

例1:RowLastData("登記表",登記表!F3)="10800"
即代表在「登記表」這個工作表中,與「登記表!F3」相同的欄位「F」最後一筆的資料是「10800」
例2:RowLastData("庫存表",登記表!D3)="A20"
即代表在「庫存表」這個工作表中,與「登記表!D3」相同的欄位「D」最後一筆的資料是「A20」

試作.zip (27.91 KB)

TOP

回復 7# a5007185


    剛剛下了您修改過的版本試了一下,
我發現不會跟著登記表變更數量耶???
是我操作有問題,
還是這巨集只能抓特定的儲存格?

TOP

回復 8# 997531

請將VBA函數增加這行「Application.Volatile」
更改後如下。
  1. Function RowLastData(SheetName As String, PT As Range)
  2.     Application.Volatile
  3.     RowLastData = Sheets(SheetName).Cells(Cells.Rows.Count, PT.Column).End(xlUp)
  4. End Function
複製代碼
詳細請參考這篇文章
http://club.excelhome.net/thread-176669-1-1.html

TOP

B3:
=IFERROR(LOOKUP(9E+307,OFFSET(登記表!$A:$A,,MATCH(A3,登記表!$1:$1,))),0)

B15:
=IFERROR(LOOKUP(9E+307,OFFSET(登記表!$A:$A,,MATCH(A15,登記表!$1:$1,)+1)),0)

E15:
=IFERROR(LOOKUP(9E+307,OFFSET(登記表!$A:$A,,MATCH(D15,登記表!$1:$1,)+2)),0)
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

        靜思自在 : 做好事不能少我一人,做壞事不能多我一人。
返回列表 上一主題