2011-11-21 36 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

相关问题