王志軍
某學生進行物理實驗時遇到一個實際問題,每一個編號的器材都對應3行記錄,分別是這個設備的A相、B相、C相的電流值(圖1),現在希望將每個編號和對應的最大電流值篩選出來,并填充到一個新建的工作表中。數據較多,需要尋求高效的實現方法。
切換到Sheet1工作表,選擇需要操作的源數據區域,即A1:A7990單元格區域,在列表字母A名稱框輸入“名稱”,將選區定義為“名稱”(也可定義為其他的名稱)。
點擊狀態欄的“+”按鈕,新建工作表Sheet2,切換到“數據”選項卡,在“排序和篩選”功能組選擇“高級”按鈕,打開“高級篩選”對話框,設置篩選方式為“將篩選結果復制到其他位置”,在列表區域文本框輸入“名稱”,條件區域不需要設置。點擊“復制到”右側的瀏覽按鈕,在Sheet2工作表選擇A1單元格,勾選“選擇不重復的記錄”復選框。檢查無誤之后點擊“確定”按鈕(圖2),很快會將不重復的篩選記錄復制過來(圖3第一列)。
選擇B2單元格,在編輯欄輸入公式“=MAX(IF(Sheet1!$A$2:$A$7990=A2,Sheet1!$D$2:$D$7990))”,這里使用IF、MAX兩個函數進行嵌套。首先利用IF函數判斷Sheet1!$A$2:$A$7990是否存在與當前單元格編號一致的編號,如果一致則返回Sheet1!$D$2:$D$7990區域內的數據,也就是滿足A2編號的電流值。最后使用MAX函數在符合當前編號條件的數據中找出最大值,按下“Ctrl+Shift+Enter”組合鍵轉換為數組公式,公式執行之后向下拖拽填充柄,很快得到如圖3第二列所示的效果,最后對標題欄進行適當設置即可。讀者可以分別執行“{=IF(Sheet1!$A$2:$A$7990=A2,Sheet1!$D$2:$D$7990)}”查看公式運行的效果進行研究。
IF函數的語法為IF(logical_test,value_if_true,value_if_false),Logical_test表示計算結果為TRUE或FALSE的任意值或表達式,本文示例為Sheet1!$A$2:$A$7990=A2;Value_if_true logical_test為TRUE時返回的值,本文示例為Sheet1!$D$2:$D$7990,表示返回同一編號的數據;Value_if_false logical_test為FALSE時返回的值,省略時則返回邏輯值。
小提示
本文雖以電流值為例講述,但對于其他方面的數據統計,只要符合上述形式,均可套用此方法。