gpt4 book ai didi

arrays - 将逗号分隔的数组作为函数参数传递

转载 作者:行者123 更新时间:2023-12-03 01:51:56 25 4
gpt4 key购买 nike

我有一列包含唯一标识符,另一列包含价格:

A | B
--+---
1 | $2
2 | $4
3 | $1
s | $6
7 | $5
x | $4
5 | $4

在工作簿的其他地方,我还有一个包含逗号分隔数组的列:

    C
---------
2,3,s
3,1
x
7,2,3,s,5

在 D 列中,我想要各个价格的总和,例如C1 中的 2,3,s 在 D1 中将给出 $11。 (4 美元 + 1 美元 + 6 美元 = 11 美元)

我尝试使用此公式搜索数组 {2;3;"s"}:

=SUM(SUMIF($A$1:$A$7;{2;3;"s"};$B$1:$B$7))

但它仅适用于硬编码数组。这不起作用:

=SUM(SUMIF($A$1:$A$7;C1       ;$B$1:$B$7))

我应该对此函数进行哪些更改,以便它能够正确读取文本逗号分隔数组?

(快速完成此任务的用户定义函数也将受到赞赏。)

最佳答案

将 SUMPRODUCT 与 SEARCH() 一起使用:

=SUMPRODUCT(ISNUMBER(SEARCH($A$1:$A$7,C1))*$B$1:$B$7)

这将遍历 A 列并查看该值是否包含在 C1 的字符串中。 SUMPRODUCT 对 B 中 SEARCH 返回 true 的值求和。

enter image description here

<小时/>

如果您的 A 列包含 aaa111 等内容,两者都会被选中向上。为了确保选择正确的,我们可以稍微改变一下公式并强制进行特定查找:

=SUMPRODUCT(ISNUMBER(SEARCH("," & $A$1:$A$7 & ",","," & C1 & ","))*$B$1:$B$7)

关于arrays - 将逗号分隔的数组作为函数参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39130307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com