【问题标题】:Excel: check all columns have a different valueExcel:检查所有列是否具有不同的值
【发布时间】:2011-08-25 10:44:44
【问题描述】:

我想知道如何比较它们的(数字)列具有不同值或所有列都相等的每一行,并在另一列中获取结果(布尔值或 0/1)。比如:

      colA colB colC   Result
row1  12   12   45     false
row2  67   67   67     true

如何在 Microsoft Excel 中简洁地编写此公式?请注意,列数可能会有所不同,至少我有大约 30 列,所以我不想在公式中命名列,而是写类似 for

谢谢。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    如果你只想测试数字,怎么办?

    =MIN(B1:B30)=MAX(B1:B30)
    

    (如果您的范围从 1 到 30)

    for 不存在于 Excel 公式中,处理 for loop 的最佳方法是使用数组公式,但此处不适用。

    您可能会寻找dynamic range,但我看不到在您的情况下轻松实现它的方法

    [编辑] 新公式感谢 Excelll 的评论

    =AND(MIN(B1:B30)=MAX(B1:B30),COUNTBLANK(B1:B30)=0)
    

    【讨论】:

    • 非常真实!不错的方法,谢谢。实际上我自己已经想出了另一个公式:=IF(STDEV(A3:D3)=0,1,0) //无论如何我想为列而不是行做它
    • @jmcejuela:你的公式基于相同的想法,也不错:)
    • 请注意,此公式将忽略空白单元格。例如,“1 1 _ 1”将返回 TRUE。
    • @Excelll:确实,我会建立另一个公式来处理这种情况
    • @JMax 实际上忽略或检查空值都可以被视为特征,并且您给出了两个公式。公认! :)
    【解决方案2】:

    如果一行中的空白单元格不是问题,@JMax 提供了一个聪明的解决方案。但是,如果您希望空白单元格返回“FALSE”,则可以使用以下数组公式:

    =AND(EXACT(A1,B1:C1))
    

    按 Ctrl+Shift+Enter 将其作为数组公式输入。

    【讨论】:

    • 它适用于我的 Excel 2007。也许是版本问题?无论哪种方式,对您而言,项目“=”都可以正常工作。 {=AND(A1=B1:C1)}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多