【问题标题】:(Excel) Return true if all items in list are identical (with varying list sizes)(Excel) 如果列表中的所有项目都相同(列表大小不同),则返回 true
【发布时间】:2018-12-26 14:58:33
【问题描述】:

我正在尝试找到一个公式,该公式将根据某个范围内的值是否都相同而返回 TRUE/FALSE。

这部分非常简单,但我还想要一个动态查找范围,即我有数百个不同的范围,每个范围都需要这个公式,并且它们的大小不同。它们都只是一列,但长度不同(行数)。因此,我正在考虑一些方法,例如,识别列表中最后一项之后有一个空单元格并停止在那里搜索。

以下是我正在使用的列表类型的示例:

72256
72256
72256
72256
72256

75432
75444

所以,我想要一个公式,它会查看第一个列表并返回“True”(因为所有值都相同,但第二个列表会返回“False”(因为并非所有值都相同) ). 而且我不想手动指定范围,因为有数百个不同的列表(不同的长度)。列表都在一个列中,它们都由相邻行中的值组成(每个列表之间有一个空单元格)。

我有以下公式,它工作得很好,但它没有包含动态范围元素:

=SUMPRODUCT(--(FREQUENCY(MATCH(A1:A9,A1:A9,0),ROW(A1:A9)-ROW(A1)+1)>0))=1

【问题讨论】:

    标签: excel indexing dynamic match


    【解决方案1】:

    您可以手动输入公式还是需要 VBA?如果您可以手动执行此操作,则可以执行以下操作:

    =IF(Count(YourRange)=CountIf(YourRange;FirstOfYourRange);True;False)

    基本上,您只需将范围内的项目数与等于第一个的数进行比较。如果两者相同,则范围内的所有元素都相同。

    【讨论】:

      【解决方案2】:

      选择 B1 并创建一个命名公式:

      myRng   Refers to:  =OFFSET(Sheet1!A1,0,0,MATCH(TRUE,(Sheet1!A1:A100 = ""),0)-1)
      

      请注意,寻址处于相对模式。范围将调整为从左侧第一个单元格(在本例中为 A1)开始的范围,并向下延伸直到(但不包括)第一个空白单元格。

      通过在区域左上角相邻的单元格中输入下面的公式,它将返回TRUEFALSE

      =FREQUENCY(myRng,myRng)=COUNTA(myRng)
      

      动态范围的位置部分取决于您在其中创建公式的选定单元格,以及命名公式中使用的寻址模式。

      因此,如果您想要其他地方的结果,通常只需适当地定义myRng

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-11
        • 2021-10-15
        • 1970-01-01
        • 2017-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多