【问题标题】:Sum of values associated with a string when a single cell contains multiple strings当单个单元格包含多个字符串时与字符串关联的值的总和
【发布时间】:2021-02-10 12:52:30
【问题描述】:

为了简化对大学课程候选人的筛选,我们创建了一个 Excel 表格来汇总候选人提供的信息。

他们必须从下拉列表中选择一项或多项学术成就(有些没有,有些有 25 个)。 Excel 文件中的结果是每个学生/行的一个单元格,其中成绩由换行符分隔。

我们有一个表格,其中每个可能的成就都值得一定数量的积分。 例如,硕士学位值 4,发表的文章值 2,等等。

我们想要添加一列,根据包含一个或多个成就的单元格来说明候选人的分数。

我们如何用 Excel 做到这一点?

谢谢!

Table with weighted value of achievement

Desired result

理想情况下,一些学生有多次出现的成就,我们希望将其考虑在内(例如,发表了两篇文章 = 6 分)但这是一个不错的选择。

到目前为止,我已经尝试过:

  • 结合 SUM 和 VLOOKUP 函数,但我似乎只能识别每个单元格的一个值
  • 正在试验 SUMIF 函数,但这似乎对我不起作用
  • 用嵌套条件试验
  • 调整需要多个单元格中的多个条件的解决方案(例如,如果该行包含 dressblue,则返回价格,但似乎没有一个适用于出现的情况是单个单元格中的多个字符串。

【问题讨论】:

  • 不鼓励访问者来此论坛索取免费代码。因此,有一条规则需要“自己的努力”,即提问者自己解决问题的努力。您的问题需要代码。您的问题中没有“自己的努力”。我投票关闭不遵守论坛规则。您仍然可以编辑您的问题并显示您尝试过的内容。
  • 这是一个很好的规则!我刚刚在帖子中添加了我尝试过的功能。

标签: excel excel-formula


【解决方案1】:

VLOOKUP 有效,但您使用了包含每个成就的 lookup_value 数组。由于成就来自下拉列表,我们可以假设它们的拼写正确。

我们可以使用FILTERXML 将条目按换行符拆分为一个单独节点的数组,然后使用它来找到合适的值。

FILTERXML 在 Windows Excel 2013+ 中,但在 Excel for MAC 或在线版中不可用。如有必要,我可以提供不同的函数来进行拆分。

例如:

=SUM(VLOOKUP( FILTERXML("<t><s>"& SUBSTITUTE(E2,CHAR(10),"</s><s>") & "</s></t>","//s"),AchieveTbl,2,FALSE))

AchieveTbl

结果

【讨论】:

    【解决方案2】:

    您也可以使用=SUM((LEN(SUBSTITUTE(E2,$A$2:$A$8,$A$2:$A$8&amp;"_"))-LEN(E2))*$B$2:$B$8)

    这是基于here的答案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-04
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 2015-03-30
      • 2017-08-28
      • 1970-01-01
      相关资源
      最近更新 更多