【发布时间】:2014-09-01 08:46:05
【问题描述】:
我有一个巨大的 Excel 表格,看起来像这样:
╔══════╦══════╦═════╗
║ A ║ B ║ C ║
╠══════╬══════╬═════╣
║ Jack ║ 2001 ║ 1,5 ║
║ Jack ║ 2002 ║ 2,0 ║
║ Jack ║ 2003 ║ 1,0 ║
║ Jack ║ 3001 ║ 3,5 ║
║ Jack ║ 3002 ║ 4,0 ║
║ Jack ║ 3003 ║ 1,0 ║
║ Jill ║ 2001 ║ 3,0 ║
║ Jill ║ 2002 ║ 5,0 ║
║ Jill ║ 2003 ║ 2,0 ║
║ Jill ║ 3001 ║ 0,5 ║
║ Jill ║ 3002 ║ 6,0 ║
║ Jill ║ 3003 ║ 2,5 ║
╚══════╩══════╩═════╝
B 列包含许多不同的数字,但它们都以数字 2、3 或 8 开头。B 列中的数字始终为 4 位数字;我只对检查第一个数字感兴趣。
我需要将 C 列的值相加,其中 B 列中相应单元格的第一个数字是 2*、3* 或 8*。我需要的是创建一个执行此操作的公式(Ruby-esque 伪代码):
sum = 0
spreadsheet_rows.each do |row|
if row.a == "Jack" and row.b == "2*" # Note the second wildcard condition.
sum += row.c
end
end
puts sum # Should print 4,5 in this example.
我正在尝试在 Excel 中使用以下公式来完成此操作:
=SUMIFS($C:$C; $A:$A; "Jack"; $B:$B; "=2*")
我知道 Excel 不支持数字的通配符条件,但是,我在 Excel 中将 B 列格式化为“文本”类型,所以我认为它会被这样处理,但它似乎仍然被视为诠释。
在=SUMIFS 中为 Excel 中的数值应用通配符条件是否有不同的方法?也许有一种方法可以以某种方式将整数“转换”为公式中的字符串?我还没有找到办法(还)。
我正在使用 Excel for Mac 2011。
【问题讨论】:
-
+1 表示╔ ASCII 表═╣
-
都是4位数字吗? - 如果是这样,我认为 paxdiablo 的(已删除)建议效果最好 - 所有
"IFS"系列函数在可能的情况下有效地将非数字值转换为数字 - 这就是为什么=COUNTIF(A:A,2)同时计算数字 2 和格式化为“2”的文本 -
@barryhoudini 是的,B 列中的数字始终是 4 位数字。
-
好的,那么如果你想坚持使用 SUMIFS(比 SUMPRODUCT 更有效),那么使用 2 个标准,">=2000" 和 "
-
哦,我的天哪……不敢相信我没有想到这一点,@barryhoudini。我非常专注于让 Excel 公式按照我想象的方式工作,以至于我没有看到明显的解决方案。感谢您向我指出。
标签: excel excel-formula excel-2011