在excel中用自定義函數獲取合并單元格內的行數
在Excel中用自定義函數獲取合并單元格內的行數
有時需要在Excel公式中用到合并單元格內所包含的行數或列數。例如下圖為幾類產品的數量統計,其中每種大類的產品都包含若干小類,需要在合并的單元格中得到各種小類的品種數及數量合計。由于合并單元格與各個小類單元格相對應,且各小類數量不等,因而有必要統計合并單元格內的行數。
用自定義函數可以方便地得到合并單元格內的行數或列數,方法如下。
按Alt+F11,打開VBA編輯器,單擊菜單“插入→模塊”,在代碼窗口中輸入下列代碼:
Function MergeRowsCount(Rng As Range) As LongMergeRowsCount = Rng.MergeArea.Rows.CountEnd Function
這樣就定義了一個自定義函數MergeRowsCount,它可以獲取某個合并單元格內所包含的行數。上圖中,E5單元格為5行合并的單元格,下面的公式可以返回數值5:
=MergeRowsCount(E6)
由于本例中E列或F列合并單元格內的行數不等,不能用拖動的方法填充公式,用下面的方法來批量輸入公式:
選擇E3:E12區域,在編輯欄中輸入公式:
=COUNTA(OFFSET(D3,,,MergeRowsCount(E3)))
然后按Ctrl+Enter即可將公式輸入到E列各合并單元格,該公式返回合并單元格對應C列的小類產品品種統計。用同樣的方法將下面的公式輸入到F列,在各合并單元格中即可得到小類產品的數量合計:
=SUM(OFFSET(D3,,,MergeRowsCount(E3)))
要獲取合并單元格內所包含的列數,可用下面的代碼:
Function MergeColumnsCount(Rng As Range) As LongMergeRowsCount = Rng.MergeArea.Columns.CountEnd Function
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。