如果所有的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?
如果countif
find与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}