我想突出顯示Excel中每個人的重疊日期範圍。單獨突出顯示重疊日期範圍
到目前爲止,我想出了這個公式:
=SUMMENPRODUKT(($D3<=$E$3:$E$10000)*($E3>=$D$3:$D$10000))>1
但我有麻煩,只突出那些給定的人,比如傑夫,有重疊的日期範圍行。
我想突出顯示Excel中每個人的重疊日期範圍。單獨突出顯示重疊日期範圍
到目前爲止,我想出了這個公式:
=SUMMENPRODUKT(($D3<=$E$3:$E$10000)*($E3>=$D$3:$D$10000))>1
但我有麻煩,只突出那些給定的人,比如傑夫,有重疊的日期範圍行。
非VBA
或者參照至C &整個列d
=AND(COUNTIFS($D:$D,">="&$C6,$C:$C,"<="&$D6)>1,$B6="Jeff")
參照細胞圖像和應用條件格式細胞A6:D12
(如果你的意思是強調只有傑夫如果他有重疊與任何人範圍)
OR
=COUNTIFS($D$6:$D$12,">="&$C6,$C$6:$C$12,"<="&$D6,$B$6:$B$12,$B6)>1
或引用整個列B,C & d
=COUNTIFS($D:$D,">="&$C6,$C:$C,"<="&$D6,$B:$B,$B6)>1
(如果你的意思是突出顯示任何與自己重疊的人)
通常使用COU會更好如果可能的話,與使用SUMPRODUCT的陣列類型解決方案相比,NTIFS具有這種問題。
使用VBA
Dim currentcell, considerationcell as Range
For each currentcell in Range("C6:C12")
For each considerationcell in Range("C6:C12")
If currentcell.Address=considerationcell.Address Then
GoTo nextiteration
End If
If currentcell >= considerationcell and currentcell <= considerationcell.Offset(0,1) Then
Range(considerationcell.Offset(0,-2), considerationcell.Offset(0,1)).Interior.Color = RGB(111,111,111)
End If
If currentcell.Offset(0,1) >= considerationcell and currentcell.Offset(0,1) <= considerationcell.Offset(0,1) Then
Range(considerationcell.Offset(0,-2), considerationcell.Offset(0,1)).Interior.Color = RGB(111,111,111)
End If
nextiteration:
Next
Next
如果你要做一些VBA而不是條件格式化,我只需要在Range(「C6:C12」)上運行'for'循環(使用'offset(0,1)'來引用列'D')檢查是否有任何給定的開始或結束日期落在您當前考慮的日期之間。您需要爲當前行創建一個例外,例如'If currentcell.address = considerationcell.address Then _ Next _ End If'。 – Kyrubas
我發佈了一個答案,但後來不確定我是否理解了這個問題。你的意思是你想選擇一個人(傑夫),並只突出他們的條目(即只是第6行而不是第9行),或者只是突出傑夫,如果他出現兩次重疊的日期? –
您的問題將從更明確的解釋中得到突出顯示。向我們展示一些您希望行突出顯示的情況,並解釋原因。例如,我無法在圖像中分辨爲什麼托馬斯的作品沒有被突出顯示,因爲它與傑夫的時間框架重疊。 –