【问题标题】:How to match a comma separated cell to sum values from multiple rows?如何匹配逗号分隔的单元格以对多行中的值求和?
【发布时间】:2020-01-30 06:23:40
【问题描述】:

我一直在尝试获取一个单元格的值:(“String 1”,“String 2”),然后在另一列中搜索“String 1”和“String 2”的每个实例,并将它们相加在列+1 上输出。

我附上了一张我想要完成的图片。我已经尝试过索引匹配和 sumif,但到目前为止还没有运气!

这是我要参考的文字:

(称之为A26)

这是我要搜索并找到匹配文本的地方:

基本上,我希望能够选择任何随机的学校组合,然后它会在我的数据中搜索匹配的学校,然后对人口进行求和。

我不想使用 VBA(感谢阅读!)

【问题讨论】:

    标签: excel excel-formula sum string-matching


    【解决方案1】:

    地点:

    • 每一行在 A 列中包含一个唯一的字符串,在 B 列中包含一个对应的数字

    • 单元格 C1 包含来自 A 列的任意数量的字符串,用逗号分隔

    此公式将 B 列中的相应值相加

    =SUM(IF(ISNUMBER(FIND(A:A&",",C1&",")),B:B))


    重要提示:这是一个数组公式,必须使用 Ctrl + Shift + Enter 和如果输入正确,它将被{ 用大括号括起来 }

    【讨论】:

    • 太棒了,所以我得到了这个工作!唯一的问题是,我认为这对于可扩展性来说不太现实。例如,如果我想对 30 个字符串执行此操作,这将非常耗时并且可能会导致人为错误
    • @Madatya 同意。你的例子在这方面并不明确,但你可以责怪我缺乏敏感性。我会考虑更多,并使用更具可扩展性的解决方案更新答案。
    • @Madatya 使用数组公式进行了更新。如所写,公式试图在整个列中找到匹配项(A:AB:B),因此您可能希望将范围限制为数据大小以获得更快的性能(A1:A45B1:B45)。
    • 我的朋友,这是一个尽可能简单的解决方案,谢谢!
    【解决方案2】:

    “诀窍”是将逗号分隔的列表拆分为单独的项目。

    如果你有 Excel 2013+,你可以使用:

    =SUM(VLOOKUP(FILTERXML("<t><s>" & SUBSTITUTE(A3,",","</s><s>") & "</s></t>","//s"),campusTbl,2,FALSE))
    

    其中campusTbl 是指您拥有人口数据的两列范围。

    (还有其他方法可以在早期版本中使用)


    编辑:

    例如,如果您没有FILTERXML 功能,请尝试:

    =SUM(IFERROR(VLOOKUP(TRIM(MID(SUBSTITUTE(A2,",",REPT(" ",99)),seq_99,99)),campusTbl,2,FALSE),0))
    

    其中seq_99 指的是:=IF(ROW($A$1:INDEX($A:$A,255,1))=1,1,(ROW($A$1:INDEX($A:$A,255,1))-1)*99)

    我为seq_99 使用了命名公式


    在某些版本的 Excel 中,您可能需要在按下回车键的同时按住 ctrl+shift 来确认此公式。

    • 我们将字符串拆分为
      • 从逗号分隔列表创建 XML
      • 提取每个“节点”
    • 或者通过使用第二个公式所示的方法
    • 然后VLOOKUP 将返回节点的人口,我们可以对它们求和

    【讨论】:

    • 所以...我有一个mac..我应该在原始帖子中提到这一点,这就是我不能使用filterxml的原因。
    • @MadatyaNersesian 查看我的编辑,我在其中发布了另一个版本,它使用其他函数来拆分字符串,并且应该在 MAC 上工作。
    • 谢谢!很棒的回应!以前没有在这种情况下考虑过。
    【解决方案3】:

    使用 SUMPRODUCT+SUMIF+FILTRXML() 的公式解决方案,其中 FILTERXML 在 Excel 2013 或更高版本中可用。

    E3,输入公式:

    =SUMPRODUCT(SUMIF(A:A,FILTERXML("<a><b>"&SUBSTITUTE(D3,",","</b><b>")&"</b></a>","//b"),B:B))
    

    【讨论】:

    • 所以您的解决方案看起来非常棒且健壮,但不幸的是它在 Excel for Mac 上不可用(非常糟糕)。我目前正在寻找具有不同 filterxml 功能的解决方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多