我正在尝试为每个“类别”名称做一个SUMIF公式,但是我试图求和的数据都是类别中的所有“项目”。我知道可以使用VBA做到这一点,但是如何使用公式呢?
对于一个简单的示例,我创建了3个简单的表:
每件商品的销售额(A1:B7)
每个类别的项目(D1:E7)
我想知道每个类别的销售额(G1:H3)
由于我还没有发布图片的“声誉”,因此以下是屏幕截图的链接:
https://imgur.com/IpLXuYF] 1] 1
很明显,仅当我在第一个表中创建新的Category列时,才会使用简单的SUMIF。由于我不愿讨论的原因,这是不可扩展的。
我还尝试过在SUMIF中使用TEXTJOIN为每个类别创建一个匹配项的数组,但是只返回0。
以下代码(输入到H2中)返回每个类别的项目列表(请注意,外部花括号来自使用Control-Shift-Enter使其成为数组公式):
file = open("file.txt", "w+")
input = file.read().split("\n")
output = {}
for line in input:
line = line.split(" ")
if line[1] in output:
output[line[1]] += int(line[0])
else:
output[line[1]] = int(line[0])
for line in output:
file.write(line + " " + str(output[line]) + "\n")
但是,如果我将其嵌套在SUMIF中,就像这样:
{=TEXTJOIN(",",TRUE,IF(D2:D7=G2,E2:E7,""))}
它返回0,因为它将TEXTJOIN值视为单个字符串,而不是数组。
我还没有找到将TEXTJOIN视为多个条件的方法。或其他解决我的问题的方法。
我很想找到一个解决此问题的公式,因为它也可以在许多其他应用程序中使用。
谢谢!