如果列只包含值“D”或空值,则返回TRUE

如果列只包含值为“D”或空的单元格,那么什么公式会返回TRUE?

我需要这个来控制条件格式。

让我简单地告诉你我是如何使用它的:在我的游戏中,我为所有的GUI文本保留了9种语言的所有翻译string。 我需要控制所有文本的状态,因为我经常更改它们,所以我需要将更改的文本提供给翻译社。 我使用列A来控制存储在列B中的文本的状态。状态D表示完成。 我使用条件格式来绿色完成的细胞和黄色所有其他的。 现在,你的公式帮助我突出标题单元格,告诉我这个语言是否有单元格在等待翻译。

我使用这个原则来处理我需要跟踪状态的所有文本数据。 如果有人感兴趣,我有macros设置列B的条件格式的基础上的值。 在我的macros显然列A与活动单元格的列;-)

编辑:灵感来自下面的答案,我的最终公式是=(COUNTA(R:R))<>COUNTIF(R:R;"D")+1其中+1是用于跳过标题。

您可以通过计算“D”的数量并将其与非空白单元格的总数进行比较来完成此操作:

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

这将计算X列中非空白单元格的数量,并检查它是否与列X中等于“D”的单元格的数量相同。

对于更复杂的用途,您还可以将COUNTIF中的第二个参数修改为其他条件语句 – 请参阅此链接以获取一些示例。

这是配方解决scheme:

 =IF(COUNTA(A:A)=COUNTIF(A:A,"D"),TRUE,FALSE) 
  • CountA是具有数据的单元的数量
  • CountIf告诉你有多less个单元格有“D”
  • 只需简单的包装if语句:)

* 请注意,COUNTIF不区分大小写

我把这个在B1单元格中检查单元格A1:

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

根据您的区域设置,您可能需要; 因为,你可能需要使用你的语言的翻译。 不要怪我:)责备Misrosoft

要结合一个完整的列,请执行

 =AND(B:B) 

(或者也许更短的范围: =AND(B1:B8) eg)

编辑build立一个演示链接: 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 

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

  • select你的数据范围(在我的情况下C5:L10)
  • select公式格式,并使用=(ROWS(C$5:C$10)=COUNTIF(C$5:C$10;"=D")+COUNTBLANK(C$5:C$10))
  • 你得到这样的格式: 该列只有格式为“D”或空单元格

希望这可以帮助

问候