excel - 使用逗号分隔的字符串作为参数的 SUMIFS
问题描述
我有一个看起来像这样的 SUMIFS
=SUM(SUMIFS('EMPLOYEES'!J:J,'Collections Test'!B:B,AE15,'EMPLOYEES'!F:F,{"00865","00866","00870","16411","16419","00978","10017","90185","90024","00069"},'EMPLOYEES'!C:C,{"STAFF"}))
我想运行一个查询,将单元格“A2”的值设置为:
"00865","00866","00870","16411","16419","00978","10017","90185","90024","00069"
然后在我的公式中引用 A2,例如:
=SUM(SUMIFS('EMPLOYEES'!J:J,'Collections Test'!B:B,AE15,'EMPLOYEES'!F:F,{A2},'EMPLOYEES'!C:C,{"STAFF"}))
这可能吗?
解决方案
如果员工编号始终为 5 位数字,这将起作用:
=SUMPRODUCT(SUMIFS('EMPLOYEES'!J:J,'Collections Test'!B:B,AE15,'EMPLOYEES'!F:F,MID(A2,ROW(INDIRECT("1:"&(LEN(A2)+1)/8))*8-6,5),'EMPLOYEES'!C:C,"STAFF"))
如果员工编号不总是 5 位数字,那就有点复杂了:
=SUMPRODUCT(SUMIFS('EMPLOYEES'!J:J,'Collections Test'!B:B,AE15,'EMPLOYEES'!F:F,MID(A2,SMALL(IFERROR(IF(MID(A2,ROW(INDIRECT("1:"&LEN(A2)+1))-1,1)=",",ROW(INDIRECT("1:"&LEN(A2)))-1),0),ROW(INDIRECT("1:"&LEN(A2)-LEN(SUBSTITUTE(A2,",",""))+1)))+2,SMALL(IFERROR(IF(MID(A2,ROW(INDIRECT("1:"&LEN(A2)+1))-1,1)=",",ROW(INDIRECT("1:"&LEN(A2)))-1),LEN(A2)),ROW(INDIRECT("1:"&LEN(A2)-LEN(SUBSTITUTE(A2,",",""))+1)))-SMALL(IFERROR(IF(MID(A2,ROW(INDIRECT("1:"&LEN(A2)+1))-1,1)=",",ROW(INDIRECT("1:"&LEN(A2)))-1),0),ROW(INDIRECT("1:"&LEN(A2)-LEN(SUBSTITUTE(A2,",",""))+1)))-3),'EMPLOYEES'!C:C,"STAFF"))
推荐阅读
- ruby - `a.select(&:even?)` 是什么意思,允许的其他运算符是什么?这些运算符叫什么?我在哪里可以了解它们?
- excel - 计算每个变量的日期
- ios - 阻止画外音说出 UIAccessibilityTrait 可调整的自动提示(swift)
- android - 我的 FFmpeg 在 android 中添加覆盖命令有什么问题
- c++ - 是否可以使用继承在 C++ 中实现 ECS?
- java - 当返回类型是项目的 PaginatedList JAVA 时如何模拟 mapper.query 方法
- java - Azure REST API 使用 java 获取存储 Blob 大小详细信息
- javascript - 创建我自己的 array.prototype.map 方法。如何访问数组?
- android - 使应用程序类单例会导致内存泄漏吗?
- performance - 我们如何提高形式识别器模型的准确性?