標題:
[發問]
抓取參照頁面的 sheet 名稱
[打印本頁]
作者:
Genie
時間:
2012-6-4 17:35
標題:
抓取參照頁面的 sheet 名稱
本帖最後由 Genie 於 2012-6-4 17:42 編輯
請問有沒有辦法在儲存格中顯示我是從哪個 sheet 抓取資料的 sheet 名稱?
因為我有一個檔案 每個 sheet 都長得很像
有時候會有點難判斷是從哪一個 sheet 抓取的資料
所以想要新增一欄來顯示我是從哪個 sheet 抓取的
附上簡單的範例
希望能幫幫忙
謝謝∼
[attach]11251[/attach]
作者:
register313
時間:
2012-6-4 17:44
回復
1#
Genie
C2=IF(ISERROR(VLOOKUP(A2,'T7'!$A:$B,2,0)),"P123","T7")
作者:
Genie
時間:
2012-6-5 08:11
請問我若有六個 sheet 的話
這樣在 B 欄就要用五個 IF
在 C 欄又用五個 IF 去找出是對應到哪個 sheet
這樣當資料量一多時 整個 excel 跑起來的速度是很慢的
所以想問有沒有辦法在 C 欄不要用 IF 的情況下去找出所對應的 sheet?
作者:
chchang76
時間:
2012-6-5 08:40
可能需要使用VBA來撰寫回饋欄位資訊。這可能需要一點時間去撰寫。(小弟功力有限
)
作者:
Hsieh
時間:
2012-6-5 08:54
回復
3#
Genie
自定義函數
Function LocationName(Fn As Range, Rng As Range, item_name As Integer) As String
Dim A As Range
For Each sh In Sheets
With sh
If sh.Name <> ActiveSheet.Name Then
Set A = .Range(Rng.Address(, , xlA1)).Find(Fn)
If Not A Is Nothing Then
Select Case item_name 'item_name=0傳回工作表名稱,item_name=1傳回儲存格位址
Case 0
LocationName = .Name
Case 1
LocationName = A.AddressLocal
End Select
Set A = Nothing
Exit For
End If
End If
End With
Next
End Function
複製代碼
[attach]11256[/attach]
作者:
Genie
時間:
2012-6-5 10:57
不好意思 設定 A 的這裡我看不太懂 不知道可不可以解釋一下?
謝謝∼
Set A = .Range(Rng.Address(, , xlA1)).Find(Fn)
作者:
Hsieh
時間:
2012-6-5 11:28
回復
6#
Genie
找到a欄對應的儲存格
作者:
Genie
時間:
2012-6-5 14:08
本帖最後由 Genie 於 2012-6-5 14:09 編輯
我套用到其它的 excel 檔案
但是只會帶出第一個 sheet 的 sheet 名稱
其它的 sheet 名稱都顯示為空白
這是否是因為每個 sheet 的欄位都不一樣的關係?
(有的 sheet 是從 A 欄開始執行 vlookup,有的是從 B 欄開始執行 vlookup)
另外
在 LocationName 函數的第二個欄位
若是選取整欄 $B:$B 顯示不會有問題
但若是有指定範圍 $B$2:$B$50 顯示出來的會是空白
請問這該如何調整呢?
謝謝∼
作者:
Hsieh
時間:
2012-6-5 16:29
回復
8#
Genie
此函數是在範圍中找到你要的資料後,傳回該資料的工作表名稱或是儲存格位址
所以,=LocationName(A2,$A$1:$A$100,0)
一樣可以傳回第一個找到資料的工作表
假如欄位不確定在A攔,可改為=LocationName(A2,$A$1:$B$100,0)
只要範圍內有出現該item就能傳回工作表名稱才對
如果仍然無法達到你的需求,請上傳你出錯的檔案並說明你的需求
作者:
Genie
時間:
2012-6-5 17:10
在這個 excel 檔會抓不到 sheet 的名稱
[attach]11271[/attach]
作者:
register313
時間:
2012-6-5 17:46
回復
10#
Genie
C3=LocationName($B3,
$A:$D
,0)
Hsieh超版前面已說明過自定義函數LocationName的用法
關鍵在於第2個引數 除了Status工作表之外其餘工作表之儲存格範圍(欲尋找ID名稱之儲存格範圍)
=>P12,P3,WT工作表之ID欄位不一定位置,列數也不一定
故可設定P12,P3,WT工作表之尋找之儲存格範圍為
$A:$D
只要在P12,P3,WT工作表
$A:$D
儲存格範圍內找到ID名稱,就傳回該工作表名稱
作者:
Genie
時間:
2012-6-5 20:26
謝謝 register313 的解說
是我誤會 Hsieh 超級板主的意思了
我一直以為第二個引數的範圍是 status 裡 ID 的範圍
沒想到是要尋找的 sheet 裡的 ID 範圍
謝謝解說!
也謝謝 Hsieh 超級板主!
作者:
Genie
時間:
2012-6-6 09:24
不好意思 我今天在使用上又出現了一些問題
就是 excel 檔案中的 P12/ P3/ WT 是從網頁上下載的資料
為什麼當我更新完 P12/ P3/ WT 的資料後
LocationName 的這個函數會顯示 #value!
然後必須再重新計算儲存格後才會顯示出值呢?
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)