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

时间:2011-11-21 22:34:10

标签: excel

如果列仅包含值为“D”的单元格或为空?

,则返回TRUE的公式为何

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

让我简要地告诉你我是如何使用它的:我为我游戏中的所有GUI文本保留了9种语言的所有翻译字符串。我需要控制所有文本的状态,因为我经常更改它们,我需要将更改后的文本发送给翻译机构。 我使用A列来控制存储在B列中的文本的状态。状态D表示完成。我使用条件格式化来完成已完成的单元格并将所有其他单元格变黄。现在,您的公式帮助我突出显示标题单元格并告诉我此语言是否有等待翻译的单元格。

我将这个原则用于我需要跟踪状态的所有文本数据。我有用于根据A列中的值设置B列的条件格式的宏,如果有人感兴趣的话。在我的宏中显然是列A是具有活动单元格的列; - )

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

4 个答案:

答案 0 :(得分:4)

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

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

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

对于更复杂的用途,您还可以将COUNTIF中的第二个参数修改为其他一些条件语句 - 有关示例,请参阅此link

答案 1 :(得分:3)

以下是公式解决方案:

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

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

答案 2 :(得分:2)

我将它放在单元格B1中以检查单元格A1:

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

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

要合并完整列,请执行

=AND(B:B)

(或者更短的范围:=AND(B1:B8)例如。)

修改建立了一个带有演示的链接: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 

答案 3 :(得分: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

希望这有帮助

此致