[算表] Excel 末10列有效資料擷取問題

作者: rafael750626 (一休)   2022-11-26 08:47:01
軟體:Microsoft Excel
版本: 家用版 2016
資料樣式範例
https://imgur.com/a/2pz4KHC
Date 表示測試日期
RoomA/RoomB/RoomC 表示不同測試區域
B ~ D欄的數字為測試結果,空白儲存格是該次未做檢測的意思。
日期相同表示同一日期不同次測試。
主要問題
想請教各位板友。如果今天我要擷取
「從第x列往前計算,最後10個有測試樣本的滾動陽性率」 (測試結果>=0的比例),
該如何設計式子呢?
舉例:
Room A 的B13儲存格:擷取 B1 ~ B13格的資料算陽性率。
Room A 的B36儲存格:擷取 B25 ~ B36格的資料算陽性率。
Room B 的C25儲存格:擷取 C13 ~ C25格的資料算陽性率。
Room C 的D18儲存格:擷取 D7 ~ D18格的資料算陽性率。
附帶條件
不要用篩選功能,因為測試區域不只一個,希望能並排比較。
嘗試與困難
之前嘗試像OFFSET,MATCH等函數都會遇到一個共同的問題。
因為要定義「非空白的最後10筆資料」在公式設計上就會撞牆。
因為範圍是可變的,
不能直接寫OFFSET然後向上10格 (會包含空白)
用單一的IF函數往上推更多資料進入選取區域也可能會遇到更多空白,解法並不完美。
怎麼查資料都查不到一個好的寫法。
想就這個部分跟各位大大請益。
感謝。
作者: kinomon (奇諾 Monster)   2022-11-26 16:50:00
我會考慮做輔助欄呈現非空白的累計個數例如RoomA輔助欄 J20= row(19:19)-countif(A$2:A20, “”)寫錯 J20= row(19:19)-countif(B$2:B20, “”)J20算出來是15 往前追溯前十就是用match找J欄為6的位置不過我只是粗略想的 應該還有比較簡潔的解法
作者: newacc (XD)   2022-11-26 19:59:00
覺得應該可以用INDEX、LARGE、IF的陣列公式處理判斷非空白回傳列號,抓列號最大的10個餵給INDEX不過我電腦送修要上班日才能幫你寫寫看了
作者: windknife18 (windknife18)   2022-11-27 21:24:00
以B36為例算第幾列=LARGE(IF($B$1:B36<>"",ROW($B$1:B36)),10)
作者: newacc (XD)   2022-11-29 16:30:00
參考看看 https://bit.ly/3VBrhch不過google在處理公式的邏輯好像跟excel不太一樣請下載下來用excel開,計算才會是對的
作者: kinomon (奇諾 Monster)   2022-11-30 19:21:00
評估值公式可以看公式的運作 {}是陣列Row($1:$10)就是{1;2;3;4;5;6;7;8;9;10}https://rijifang.com/index.php/post/59.html找了找這篇對岸文章寫得比較淺顯
作者: newacc (XD)   2022-12-02 11:38:00
結果變成0或1應該是被當作陣列公式處理了,試試看編輯F2直接按Enter完成公式,再從F2複製到其他格看看加成壓縮檔,應該不會被google動手腳了https://bit.ly/3VLY4LI 新增公式的解說https://i.imgur.com/isDK7KW.png
作者: rafael750626 (一休)   2022-12-05 15:54:00
剛才確認了。如果自行輸入公式,結果會是0或1在有按下ctrl + shift + Enter的情況下...
作者: windknife18 (windknife18)   2022-12-05 18:38:00
F2=IF(COUNTIF(B$2:B2,"<>")<10,"不足10例",COUNTIF(INDIRECT("D"&LARGE(IF(B$2:B2<>"",ROW(B$2:B2)),10)&":D"&ROW(B2)),">0")/10)按Ctrl+Shift+Enter結束,然後往下和右複製公式忘了改indirect裡面的D了,所有D要改成B另外公式複製到G2要將裡面的B改成C,依此類堆https://tinyurl.com/2p9756se
作者: rafael750626 (一休)   2022-12-06 09:29:00
感謝windkinfe18大大,目前公式可以使用。且原始資料也可以修改。公式內容我應該看得懂。感謝!

Links booklink

Contact Us: admin [ a t ] ucptt.com