2013-01-09 76 views
0

在Excel中,我試圖編寫一個公式,根據每個單元格的數據驗證規則,檢查某個單元格區域中的任何單元格是否包含無效數據。我想使用這些信息在靠近頁面頂部的單元格中顯示一條消息,因此用戶不必滾動瀏覽整個表格以查看它是否包含任何無效數據。在Excel中,如何根據數據驗證規則檢查給定範圍內的單元格是否無效?

我想檢查的範圍內的所有單元格都使用相同的規則進行數據驗證,但這些規則相當複雜,並且取決於每行中其他單元格的值。我已經知道可以使用VLOOKUP函數(例如=IF(ISNA(VLOOKUP("Lookup Value", A1:A20, 1, FALSE)), "Not Found", "Found"))檢查給定列中的任何單元格是否等於某個值,但似乎沒有任何方法可以使用同一方法檢查包含無效數據的單元格。

有沒有辦法在不使用VBA的情況下在Excel中執行此操作?如果不是,你能推薦一種替代解決方案嗎?

+0

我不相信您可以使用一個簡單的公式來直接引用單元格的驗證,但您可以使用與數據驗證中使用的條件類似的公式,規則是什麼?驗證是否阻止輸入無效數據....或者是否粘貼? –

+0

@barryhoudini嗯,這是一個公式,我把它放在單元格E16,當單元格無效時返回true:'= AND(OR(D16 =「Fail」,D16 =「N/A」),LEN(E16)<= 0)'。 (此公式取自我的條件格式,它以紅色突出顯示無效字段。) – Ajedi32

+0

@barryhoudini驗證不會阻止輸入無效數據,因爲驗證本身取決於相鄰單元的值。例如。在上面的例子中,如果E16的長度是0,並且D16的值是「失敗」或「N/A」,E16纔是無效的。 因此,E16可能是有效的,然後D16的值可能會改變,並突然使其無效。 – Ajedi32

回答

2

因此,如果任何行在列D中包含失敗或不適用,並且同一行中列E爲空,那麼它是無效的?

嘗試使用COUNTIFS查看是否有任何無效的行,例如這個公式在頂部

=IF(SUM(COUNTIFS(D:D,{"Fail","N/A"},E:E,"")),"Invalid Data","All OK")

或該版本將給你的實例數量

=IF(SUM(COUNTIFS(D:D,{"Fail","N/A"},E:E,"")),SUM(COUNTIFS(D:D,{"Fail","N/A"},E:E,""))&" Row(s) of Invalid Data","All OK")

COUNTIFS只在Excel 2007中有效或稍後,在早期版本中,你可以指望無效與SUMPRODUCT行,即

=SUMPRODUCT((D1:D1000={"Fail","N/A"})*(E1:E1000=""))

+0

嘿,它的工作原理!謝謝你的幫助。 ;) – Ajedi32

+0

所以我研究了COUNTIFS函數,它看起來非常有用。至於爲什麼在你的例子中需要SUM函數,我有點好奇。爲什麼COUNTIFS本身不能提供正確數量的無效行? =/ – Ajedi32

+0

在這個公式中'= COUNTIFS(D:D,{「Fail」,「N/A」},E:E,「」)',因爲其中一個標準是「數組」失敗「,」不適用「}},那麼'COUNTIFS'也返回一個包含兩個值的數組(一個是」Fail「和空白的所有行的計數,一個是」N/A「 )和SUM需要添加2個值。你可以使用2個獨立的'COUNTIFS'功能,但是這個功能稍微短一點.... –

相關問題