如果所有的Excel列值不一致,则返回

Excel电子表格中有以下数据:

ABC 1 bbb 

我想在数据之后的列中放入一个公式,比较行中的每个(文本)值,如果它们都相同,即A = B = C,则返回TRUE。 如果一个或多个值不同意,我希望它返回FALSE。 即

  ABCD 1 bbb TRUE 2 beb FALSE 3 ebb FALSE 

我知道像AND这样的逻辑函数,因此可以构build类似的东西

AND(A1=B1,A1=C1.. etc) ,然而,一旦列数增加,这很快就会变得难以处理。

重组数据是不可行的。

有谁知道一个OOTB / VB解决scheme?

如果countiffind与count相同的数字,那么它们都是一样的。

 =IF(COUNTIF(A1:C1,A1)=COUNTA(A1:C1),"true","false") 

希望这是你正在寻找的东西,你只需要扩大你想testing的列的范围。

更新

正如在注释中指出的那样,如果数据集有空白单元格,则不能返回正确的结果。

即使在范围内有一个空白单元格,这将返回false:

 =IF(AND(COUNTIF(A1:C1;A1)=COUNTA(A1:C1);COUNTBLANK(A1:C1)=0);"true";"false") 

这是一个VBA UDF:使其区分大小写删除选项比较文本

 Option Explicit Option Compare Text Public Function AllSame(theRange As Range) As Boolean Dim vR As Variant Dim vC As Variant AllSame = True vR = theRange If IsArray(vR) Then vC = vR(1, 1) For Each vC In vR If vC <> vR(1, 1) Then AllSame = False Exit For End If Next vC End If End Function 

虽然速度会慢一些,但也可以使用数组公式(在单元格中input后按Ctrl + Shift + Enter ):

 {=IF(SUM(COUNTIF(A1:C1,A1:C1))=POWER(COUNTA(A1:C1), 2),"true","false")} 

即使在范围内有空单元,这也可以工作。

更新:
这个数组公式也可以工作,确保在一个范围内只有一个唯一的值。 即使范围内存在空格,它也会返回准确的值:

 {=SUM(IFERROR(1 / COUNTIF(A2:C2,A2:C2), 0)) = 1}