检查excel列值是不是相等

Posted

技术标签:

【中文标题】检查excel列值是不是相等【英文标题】:Check excel column values if they are equal to each other检查excel列值是否相等 【发布时间】:2016-01-30 09:39:38 【问题描述】:

我有一张这样的桌子

产品       价格     货币 ________   _____   ________ 产品 1      10      美元 产品 2      11      欧元 产品 3      12      美元 产品 4      13      人民币 产品 5      14      欧元 _____ =小计(109)

我在货币列中使用过滤器,在价格列中使用小计(109)公式来汇总价格。因此,如果从过滤器中选择了美元,它将过滤所有具有美元价格的产品并将它们相加。但是如果没有过滤货币 subtotal(109) 总和价格,这是错误的(1 美元 + 1 欧元不是 2)。

仅当货币列中的值彼此相等时,我才想触发 subtotal(109) 公式。例如,在过滤的行中计算 NOT 唯一值,如果等于 1,则触发小计 (109)。

注意:我知道如何使用 SUMIF 进行操作,方法是在单独的单元格中放置一个包含货币的下拉列表。但我想使用过滤器来完成这项任务。

【问题讨论】:

这里有一些通过公式计算过滤列表中唯一值的想法blog.contextures.com/archives/2010/10/04/… 【参考方案1】:

假设我们有一个自动过滤表,例如:

但如果选择了多个货币,我们需要警告而不是 SUBTOTAL()

我们需要检测不止一种货币。

首先在标准模块中输入以下User D定义的F函数:

Option Explicit

Public Function CountVisibleUnique(rng As Range) As Long
   Dim c As Collection, r As Range
   Set c = New Collection

   On Error Resume Next
      For Each r In rng
         If r.EntireRow.Hidden = False Then
            c.Add r.Text, CStr(r.Text)
         End If
      Next r
   On Error GoTo 0

   CountVisibleUnique = c.Count
End Function

然后在单元格B8中,替换:

=SUBTOTAL(109,B2:B6)

与:

=IF(countvisibleunique(C2:C6)>1,"multiple currencies",SUBTOTAL(109,B2:B6))

【讨论】:

太棒了!这可行,但我正在寻找无宏的东西,如下所示:=SUBTOTAL(IF(COUNTUNIQUE(C2:C6)>1),"multiple currency",109,B2:B6),而 COUNTUNIQUE 是一些相关的 excel公式(不是UDF,所以不需要VBA),但找不到那个公式。如果我找不到任何无宏解决方案,我将使用它。非常感谢,这很有帮助。 @Farrukh 我稍后会参考 formula 解决方案来更新它。 非常感谢。感谢您的努力。

以上是关于检查excel列值是不是相等的主要内容,如果未能解决你的问题,请参考以下文章

如何检查数组中的数字是不是相等?

PHP - 检查两个数组是不是相等

根据值列表检查变量是不是相等

检查python中两个元组是不是相等的时间复杂度

C ++如何检查数组中的元素是不是相等?

如何检查 Lua 中的两个值是不是原始相等?