2011-11-21 58 views
4

如果一列只包含值爲「D」或空值的單元格,那麼將返回TRUE?如果某一列只包含值「D」或爲空,則返回TRUE

我需要這個來控制條件格式。

讓我簡單地告訴你我是如何使用它的:我爲我的遊戲中的所有GUI文本保留了9種語言的所有翻譯字符串。我需要控制所有文本的狀態,因爲我經常更改它們,我需要將更改後的文本發送給翻譯社。 我使用列A來控制存儲在列B中的文本的狀態。狀態D表示完成。我使用條件格式來綠化已完成的單元格,並使所有其他單元格變成黃色。現在,您的公式可以幫助我突出顯示標題單元格,並告訴我該語言是否包含等待翻譯的單元格。

我將這個原理用於我需要跟蹤狀態的所有文本數據。如果有人感興趣,我有宏設置列B的條件格式的基礎上的值。在我的宏顯然是列A與活動單元格的列;-)

編輯:從下面的答案啓發,我的最終公式是=(COUNTA(R:R))<>COUNTIF(R:R;"D")+1其中+1是用於跳過標題。

回答

4

您可以通過計算「d」的數量和對非空白單元格的總數比較該這樣做:

=(COUNTA(X:X)=COUNTIF(X:X,"D")) 

這將計算X列中非空白單元格的數量,並檢查它是否與列X中等於「D」的單元格數量相同。

對於更復雜的用途,您還可以將COUNTIF中的第二個參數修改爲其他條件語句 - 有關示例,請參見此link

+0

+1精美的Excel本地解決方案 – sehe

2

我把這個在B1單元格,檢查單元格A1:

=OR(A1="D", A1="") 

根據您的語言環境設置,您可能需要爲;,您可能需要使用的OR你的語言的翻譯。不要怪我:)怪就怪Misrosoft

要結合一整列,做

=AND(B:B) 

(或者更短的範圍:如)

編輯提出了一個鏈接一個演示:https://docs.google.com/spreadsheet/ccc?key=0AlX1n8WSRNJWdFAwZEpNRGhwdTNucDJ3dWQ1V3owRkE

編輯要評論:

一個用戶自定義的工作表函數來完成,這將大致是這樣的:

' untested code - written in browser 
Public Function HasOnlyD(rng as Range) As Boolean 

    Dim cell As Range 
    For Each cell In rng 
     If (Not cell.Value = "") And (Not cell.Value = "D") Then 
       HasOnlyD = False 
       Exit Function 
     End If 
    Next   

    HasOnlyD = True 
End Function 
+0

參見[谷歌文檔演示(https://docs.google.com/spreadsheet/ccc?key=0AlX1n8WSRNJWdFAwZEpNRGhwdTNucDJ3dWQ1V3owRkE)(你可以下載en Excel工作表,如果你願意的話) – sehe

+0

我看到你的觀點與此解。然而,這需要額外的B列,我想避免,因爲我有許多A列,這會相當「污染」我的工作簿。 –

+0

如果更容易,那麼我可以定義條件爲「列A不包含」A「或」B「之一,但原始條件更通用 –

3

下面是公式的解決方案:

=IF(COUNTA(A:A)=COUNTIF(A:A,"D"),TRUE,FALSE) 
  • COUNTA是數據單元的數量
  • COUNTIF告訴你有多少細胞具有 「d」
  • 在一個簡單的if語句只是包裝: )

* 請注意,COUNTIF不區分大小寫

+0

+1對於幾乎與其他excel同時發佈幾乎同時 - 原生解決方案 – sehe

+0

嗯,'IF({TRUE/FALSE},「TRUE」,「FALSE」)'讓我畏懼... –

+0

啊你是對的我把引號 - 我在想什麼?! :0 – aevanko

0

您也可以使用條件格式化:

  • 選擇數據的範圍(在我的情況C5:L10)
  • 選擇格式化用公式和使用該=(ROWS(C$5:C$10)=COUNTIF(C$5:C$10;"=D")+COUNTBLANK(C$5:C$10))
  • 你得到一個格式化這樣:The column is formated only it have "D" or empty cells

希望這有助於

註冊ARDS

相關問題