【问题标题】:SUMPRODUCT with duplicate values in Dropdown in excelSUMPRODUCT 在 Excel 的下拉列表中具有重复值
【发布时间】:2018-07-16 06:35:29
【问题描述】:

我有一个带有多个下拉选项的 Excel 表,其中项目与表 2 中的主数据绑定。主数据包含项目及其各自的值。 现在我使用一个公式来计算下拉列表中选择的项目的总和,如下所示

=SUMPRODUCT(ISNUMBER(SEARCH(PRODUCT,J4))*AMOUNT)

其中 PRODUCT & AMOUNT 是主数据,J4 是多选下拉列表的列引用。 代码运行良好,但每当我在下拉列表中选择重复项时,重复项的数量不会反映在添加代码的 SUM 列中。但是,所选项目的数量适用于以下公式

=IF(J4="","",(LEN(J4)-LEN(SUBSTITUTE(J4,CHAR(10),""))+1))

数据:

| PRODUCT | AMOUNT |
|---------|--------|
| Apple   | 100    |
| Grapes  | 200    |
| Orange  | 50     |
| Mango   | 500    |
| Guava   | 350    |
| Cherry  | 170    |

预期结果:

这是多选下拉菜单。在第二行,我选择了 Apple、Grapes 和 Orange,所以它的数量为 350 (100 + 200 + 50)。现在在第一行,如果我再次选择苹果,那么苹果的成本应该加起来,即它应该是 450 (100 + 200 + 50 + 100)

【问题讨论】:

  • 为什么要投反对票?
  • @QHarr Image 添加了更多描述
  • J4 在这一切中在哪里?是左边的产品栏吗?
  • 苹果如何以 350 结束,即使只有一次,因为右侧的值为 100?多一点解释会有所帮助。
  • 它的多选下拉菜单。在第二行,我选择了 Apple、Grapes 和 Orange,所以它的数量为 350 (100 + 200 + 50)。现在在第一行,如果我两次选择 Apple,那么总和应该是 Apple、Grapes、Orange & Apple 450 (100 + 200 + 50 + 100)。我认为它消除了疑问:)

标签: excel


【解决方案1】:

通用:

你想要一个通用公式:

=SUMPRODUCT(SUMIF(PRODUCT,array,AMOUNT))

具体例子:

例如顶盒

=SUMPRODUCT(SUMIF(PRODUCT,FILTERXML("<t><s>" & SUBSTITUTE(B2,CHAR(10), "</s><s>") & "</s></t>", "//s"),AMOUNT))

根据您的文件:

注意我使用FILTERXML 从下拉选择中创建值数组。 Char(10) 是你的新线路。

看我对FILTERMLhere的解释。


示例运行:

【讨论】:

  • 列引用是多个下拉列表所在的J4。所以 E3:E6 被 J4 替换,但它显示总和为零 (0)。 J4 是单个单元格,我们可以在下拉列表中选择多个项目并在新行中显示,但单元格保持单个。
  • J4 是单个单元格,其中包含带有新行 (vbNewLine) 的项目
  • 请看我已经上传了一些列隐藏通过的excel如果被问到是'测试'dropbox.com/s/pp5evikosfctp9o/Book2%20-%20Copy.xlsm?dl=0
  • 不,它不起作用,当我选择项目表单下拉菜单时,值显示为 0。我不知道我错过了什么
  • 我下载了你的文件,但不计算重复项:(顺便说一句,我非常感谢你的帮助。:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-15
  • 1970-01-01
  • 2021-12-13
  • 2020-05-04
  • 1970-01-01
相关资源
最近更新 更多