我正在創建一個解決方案,以自動檢測用谷歌表格創建的時間表中的沖突。沖突 "意味著在同一天的同一時間,不同的課程應該有同一個老師或在同一個房間。例如,在下面的表格中,第1組和第2組應該在同一時間在2號教室,這應該被表示為 "沖突"。
星期一 星期二 ...
房間科目教師輔導員 房間科目教師輔導員 ...
(group1)
09:00-10:00 1 數學 史密斯-布萊克
10:00-10:45 2 科學 斯通斯-莫爾
...
(第二組)
10:00-10:45 2門數學 史密斯-泰勒
10:55-11:40 1個閱讀 安德森-哈里斯
...
=if(OR(ARRAYFORMULA(D7={D19;D29})); "此時老師有另一個班級的_組"; "ok")
然而,這種解決方案有一些缺點。
最主要的是:{D19;D29;...}陣列是手動形成的,這并不好,至少是非常脆弱的。如果在時間表的中間加入一行,大部分的檢查都會中斷。我想做的是通過過濾A列中具有相同時間的行來獲得必要的行,然后獲得單元格D來進行比較。
另一個問題是,我無法獲得(和顯示)這個教師也應該教的 "沖突 "組(除非我手動創建另一個陣列,與{D19;D29;...}相對應,這是更多的手工作業),見公式中的_。
我的問題是,我能否在 Google sheet 中創建某種形式的回圈/迭代,以某種方便的編碼方式處理這些問題?或者你會建議另一種方法來解決這個問題嗎?
uj5u.com熱心網友回復:
在樣本表上有一個標簽,叫做沖突查找器(Simpler),你可以在G3單元格中找到這個公式,在H3單元格中也有一個非常相似的公式。 它計算一個共同的時間段和教師姓名的實體,如果超過1,它就會輸出 "沖突 "一詞
。=ARRAYFORMULA({"教師沖突";IF(COUNTIFS($A4:$A;$A4:$A;D4:D;D4:D)>1; "沖突;)})
一旦創建了帶有陣列公式的列,你可以應用帶有自定義公式的條件格式化來突出沖突的單元格,并隱藏輔助列。例如,對于范圍D4:D1000應用=LEN(G4)來給出紅色背景(事實上,范圍D4:E1000也可以,因為列H包含列E的沖突)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/320555.html
標籤:
下一篇:在谷歌表格中獲取字符后的數字
