複製模式和貼上的正確 Excel 公式或 VBA 程式碼是什麼?

複製模式和貼上的正確 Excel 公式或 VBA 程式碼是什麼?

所以我有以下要求:

表1

xxxx
YYYY
ZZZZ

表2

1994 xxx
1995 xxx 
1996 xxx
1994 YYY
1995 YYY 
1996 YYY
1994 ZZZ
1995 ZZZ 
1996 ZZZ

本質上,我想要的是從工作表 1 複製公司名稱,並將其貼到每個給定年份,並對近 600 家公司重複。

是否有任何公式或 VBA 程式碼可以完成此任務?我真的很感激任何幫助

答案1

選擇您的公司清單並使用資料>取得和轉換資料>從表/範圍。

這將開啟 Power Query 編輯器。你會看到這樣的東西:

在此輸入影像描述

使用主頁>關閉並加載

現在我們將花點時間建立起始年和結束年之間的動態年份清單。如果您想稍後更改開始和結束,這將很有用。

在工作簿的單獨儲存格中輸入起始年份和結束年份。

在此輸入影像描述

選擇起始年份,然後透過在名稱方塊中鍵入 start_year 之類的名稱來命名儲存格:

在此輸入影像描述

命名儲存格後,選擇儲存格並使用資料>取得和轉換資料>來自表/範圍

Power Query 編輯器開啟並顯示列標題為 Column1 的單一儲存格後,以滑鼠右鍵按一下該儲存格並選擇「向下鑽取」:

在此輸入影像描述

如果展開左側的「查詢」窗格,您將看到以下內容:

在此輸入影像描述

使用“主頁”>“關閉並載入到”並選擇“僅建立連接”。

在年底重複此操作,這樣您就得到了:

在此輸入影像描述

再次,關閉並加載並僅建立連接。

現在,在 Excel 中,按一下資料>查詢和連線。你應該看到這個:

在此輸入影像描述

我的顯示“已載入 50 行”,因為我建立了包含 50 個公司名稱的虛擬資料。你的可能會有所不同。

右鍵單擊 Table1 查詢並選擇“編輯”。這將再次開啟 Power Query 編輯器。

現在轉到主頁>進階編輯器。它應該看起來像這樣:

在此輸入影像描述

我們將添加一些程式碼來建立該年份列表。

將此行加入第二行:

years = List.Numbers(start_year,end_year),

像這樣:

在此輸入影像描述

現在點選“完成”。看起來一切都沒有改變,但不用擔心。

使用“新增列”>“自訂列”並如下配置:

在此輸入影像描述

當您按一下「確定」時,您將看到以下內容:

在此輸入影像描述

點擊年份列頂部的雙箭頭,然後點擊“擴展至新行”

在此輸入影像描述

現在您將看到公司和年份的每個組合都有一行:

在此輸入影像描述

使用“主頁”>“關閉並加載”將其放回您的工作簿中。

如果您的公司清單或開始和/或結束年份發生變化,您只需更改來源資料並刷新此查詢即可。

答案2

這是一件非常容易做到的事。有很多方法,但以下是符合您剛才描述的最簡單的方法。

總共有多少個公司名稱。 (只需按Ctrl-Down Arrow它們的列,看看最後一行是哪一行。將第一行與其中一個一起使用,看看有多少存在。為了這個答案,假設它是 587。)

在另一張工作表上,選擇一列並輸入第一年,然後向下複製以填入總共 587 個儲存格。假設您從 A1 開始並在 A587 結束。在儲存格 A588 中,輸入公式=A1+1。將其複製下來以填充另外 587 個單元格。複製該儲存格,然後反白該儲存格以及其餘 587 個儲存格 (A588:A1174) 並貼上。現在,所有 587 個單元格都突出顯示並填充了公式。複製該區塊並按Ctrl-Down Arrow,然後Down Arrow再次按以到達下一個空白儲存格 (A1175)。

現在再次貼上,然後向下移動到下一個空白單元格。繼續,直到您擁有您想要列出的所有年份的 587 個單元格。反白整列條目(可能是 30 年,因此您突出顯示儲存格 A1:A17610)。複製整堆並將Paste|Special|Values其全部更改為永久文字。

複製 587 公司名稱並將其貼上到 B1:B587 的下一列。然後轉到下一個空白儲存格 B588,輸入公式=B1,然後複製該儲存格。移至 A 列並轉到最後一個填充的儲存格,或直接使用F5 GoTo轉到儲存格 B17610(最後一個帶有年份的儲存格是 A17610,無論如何您確實希望位於 B 列中)。不管你怎麼做,都會到達B17610。按Shift-Up Arrow覆蓋所有這些空白單元格(本身以及一直到 A588,這就是您將要到達的位置...可以貼上到 A588 上,因為它是相同的公式)。

突出顯示後,貼上。然後突出顯示所有 B 列單元格,就像對 A 列所做的那樣,然後複製並使Paste|Special|Values它們也成為永久文字。

看起來只有一個小時,而且很麻煩。事實上,我預計最多 2 分鐘,即使你有些笨手笨腳的。如果你不這樣做……無論讀起來如何,在現實生活中它都很快。

完畢。

相關內容