假設我在sheet1中有一個 columnA,例如:

我想在 sheet2 中創建一個完全參考 sheet1 中該列的列。但:
- 當我在 ColumnA sheet1 中插入數字“10”時,Sheet2 中的 ColumnA 也會自動添加這個“10”。
- 當我在 ColumnA sheet1 中洗掉數字“5”時,Sheet2 中的 ColumnA 也會自動洗掉這個“5”。

所以基本上我希望列的范圍是參考/動態的。如果我們使用 {vlookup} 或簡單的參考“='Sheet1!A5”,那將給出#REF!或#N/A,但錯誤行仍然存在。
有誰知道這在excel中是否可以實作?
uj5u.com熱心網友回復:
使用索引:
=IF(INDEX(Sheet1!A:A,ROW())&""="","",INDEX(Sheet1!A:A,ROW()))
把它復制下來,只要你認為能覆寫到 sheet1 上的最多內容
如果一個人有 Office 365,那么簡單地說:
=FILTER(Sheet1!A:A,Sheet1!A:A<>"")
在第一個單元格中,它將溢位結果并隨著范圍的變化而變化。
uj5u.com熱心網友回復:
你可以使用公式Indirect()來解決這個問題。
Indirect()允許您通過名稱參考單元格,而不是直接參考它。這樣即使洗掉一行,名稱本身仍然存在,所以Indirect()很高興。
在Sheet2, 單元格A1:
=Indirect("Sheet1!A" & Row())
復制并粘貼下來,它應該按照您的要求行事。
我Row()也在使用,因此您可以復制/粘貼此公式,而不必在單元格名稱中硬編碼行號。您也可以這樣做,=Indirect("Sheet1!A1")但是如果不手動更改每一行中的公式,您就無法復制公式,誰有時間呢?
您在評論中指出,0當間接參考的單元格為空時,您會回傳。在這種情況下,只需將此公式包裝起來if()以抑制0值:
=If(Indirect("Sheet1!A" & Row()) = 0, "", Indirect("Sheet1!A" & Row()))
uj5u.com熱心網友回復:
(不是答案,但太大而無法放入評論)
我建議您檢查該Worksheet_Change事件,只要將某些內容更改為作業表,就可能會啟動該宏,但請注意:
想象一下你有以下情況:
表 A:
1
2
3
4
5
表 B:
1
2
3
4
5
你說3在作業表 A 中洗掉也應該導致3在作業表 B 中洗掉,反之亦然,但是當你有兩列時:
表 1:
1 Brussels
2 Ghent
3 Kortrijk
4 Brugge
5 Wervik
和表 2:
1 Berlin
2 K?ln
3 Frankfurt
4 Stuttgart
5 Reichenbach
它應該成為四種可能性中的哪一種?
可能性 1:(洗掉作業表 1 中的單元格和作業表 2 中的單元格)
表 1
1 Brussels
2 Ghent
4 Kortrijk
5 Brugge
Wervik
表 2:
1 Berlin
2 K?ln
4 Frankfurt
5 Stuttgart
Reichenbach
可能性 2:洗掉作業表 1 中的整行和作業表 2 中的單個單元格
表 1
1 Brussels
2 Ghent
4 Brugge
5 Wervik
表 2:
1 Berlin
2 K?ln
4 Frankfurt
5 Stuttgart
Reichenbach
可能性 3:洗掉作業表 1 中的單個單元格和作業表 2 中的整行)
表 1
1 Brussels
2 Ghent
4 Kortrijk
5 Brugge
Wervik
表 2:
1 Berlin
2 K?ln
4 Stuttgart
5 Reichenbach
可能性 4:洗掉作業表 1 中的整行和作業表 2 中的整行)
表 1
1 Brussels
2 Ghent
4 Brugge
5 Wervik
表 2:
1 Berlin
2 K?ln
4 Stuttgart
5 Reichenbach
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/456764.html
