首页 > 解决方案 > 如何通过从 A 列中选择多个不同的值来对 B 列的值求和?

问题描述

A 1
B 2
C 3

我想通过选择字母来添加数字,就像在公式中选择 A 和 B 一样,单元格必须显示总和值 3,即使我将字母表颠倒过来,它仍然通过分析字母表显示 3。

标签: excel-formula

解决方案


我首先检查了用户提供的输入字符串中存在哪些键值。我创建了一个新列,其中我为输入字符串中不存在的那些分配了一个额外的值 0,为那些存在的那些分配了一个值 1。然后我将该二进制列乘以相应的值,然后将它们全部相加。

我从 FIND() 开始,它会告诉您输入字符串中键字母的值从哪里开始。例如,=FIND("A", "BAC") 将返回 2,因为 "A" 从 "BAC" 的第二个位置开始。

如果找不到字符串,这将返回错误,所以我用 IFERROR() 包围了 FIND() 的输出。IFERROR 接受一个表达式,如果表达式返回错误,您可以指定您希望输出的内容。我将错误输出值设置为“0”。

然后我用 IF() 语句包围了所有这些。如果值为 0,则保留为 0。如果大于 0,则将其设置为 1。

此 IF(IFERROR(FIND())) 表达式将为每个键字母生成 0 或 1,然后您可以将其与该键的值相乘以获得该键对最终总和的贡献。然后它可以整齐地加起来。

最终电子表格的屏幕截图

重要的单元格公式是:

  • C1:(无论您的输入字符串是什么)
  • C2:=总和(C5:C7)
  • A5:一个
  • A6:乙
  • A7:C
  • B5:1
  • B6:2
  • B7:3
  • C5: =IF(IFERROR(FIND(A5,$C$1),0)>0,1,0)*B5
  • C6: =IF(IFERROR(FIND(A6,$C$1),0)>0,1,0)*B6
  • C7: =IF(IFERROR(FIND(A7,$C$1),0)>0,1,0)*B7

推荐阅读