亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
1373
2025-04-01
Excel用數組公式從一列中提取非空單元格值
如果Excel工作表的某列中包含一些空單元格,要去掉這些空單元格,將非空單元格內容放到另一列中,最快的方法是通過篩選隱藏空單元格,再復制到其他列中。如果不使用篩選,還可以用下面的數組公式:
假如數據在A2:A20區域中,將提取后的數據放到B列中,在B2單元格中輸入數組公式:
=INDEX($A$2:$A$20,SMALL(IF($A$2:$A$20="","",ROW($A$2:$A$20)-ROW($A$2)+1),ROW($A2)-ROW($A$2)+1))
公式輸入完畢后按Ctrl+Shift+Enter結束,然后向下填充公式,直到出現“#NUM!”為止。
說明:
SMALL函數的語法為:
SMALL(array, k)
返回數據集“array”中的第“k”個最小值。
公式中SMALL函數的第一個參數“IF($A$2:$A$20="","",ROW($A$2:$A$20)-ROW($A$2)+1)”產生一個數組:
{1;"";"";4;"";"";7;8;"";"";11;12;13;"";"";"";17;"";19}
該數組中的數字為A2:A20區域中非空單元格對應的位置,而空引號則對應區域中的空單元格。
第二個參數“ROW($A8)-ROW($A$2)+1”根據B列中單元格的位置依次返回“1”、“2”、“3”……
上述數組中,第1個最小值為“1”,第2個最小值為“4”,……。這樣就用SMALL函數“去掉”了數組中的空值,最后用INDEX函數返回一列連續的非空單元格值。本例由于A2:A20區域中只有9個非空單元格,當SMALL函數的第2個參數為“10”時就會出現錯誤,說明A列中的非空單元格值已返回完畢
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。