僅需一個公式 讓Excel按人頭打出工資條

來源:互聯網
上載者:User

使用Excel按人頭製作工資條,網上有兩個解決方案,一個是利用Word的“合併列印”功能,另一個是利用VBA來實現。

用“合併列印” 功能操作雖說不難,但資料過多時也很麻煩;用VBA處理起來倒是很方便,但幾十行的程式也夠初學者忙活的。經過一番實驗,筆者找出了一個比較簡單的方法,只需一個公式就可以按人頭列印出工資條來。
建立一Excel檔案,在sheet1中存放工資表的未經處理資料,假設有N列。第一行是工資項目,從第二行開始是每個人的工資

在sheet2中我們來設定工資條。根據實際情況,工資條由三行構成,一行對應工資項目,一行對應一個人的工資資料,然後是一個空行用來方便切割。這樣三行構成一個工資條。工資項目處在行號除以3餘數為1的行上;空行處在行號能整除3的行上。以上兩行不難設定,關鍵是工資資料行,牽扯到sheet1與 sheet2中資料的對應,經分析不難看出“sheet1中的資料行=INT((sheet2中的資料行+4)/3)”。
這樣我們在sheet2的A1儲存格中輸入公式“=IF(MOD(ROW(),3)=0,"",IF(MOD(ROW(),3)=1,Sheet1!A$1,INDEX(Sheet1!$A:$N,INT((ROW()+4)/3),COLUMN())))”。確認後選擇A1儲存格,把滑鼠放在A1儲存格的右下角,滑鼠變成“+”時,向右拖動滑鼠自動填滿至N列,這樣工資條中的第一行就出來了。選定A1:N1,把滑鼠放在N1儲存格的右下角,滑鼠再次變成“+”時,向下拖動滑鼠自動填滿到資料的最後一行,工資條就全部製作完成了。
該公式運用IF函數,對MOD函數所取的引用行號與3的餘數進行判斷。如果餘數為0,則產生一個空行;如果餘數為1,則固定取sheet1中第一行的內容;否則運用INDEX函數和INT函數來取Sheet1對應行上的數。

最後來設定一下格式,選定A1:N2設上表格線,空行不設。然後選定A1:N3,拖動N3的填滿控點向下自動填滿,這樣有資料的有表格線,沒有資料的沒有表格線。最後調整一下頁面邊界,千萬別把一個工資條打在兩頁上。怎麼樣,還滿意吧?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.