问题描述
我试图找到一个公式,它可以帮助我找到与 ID 一起使用的 4 个标准的结果的平均值;公司名;使用 isnumber 搜索选项的代码和活动: 例子: 包含从报告中提取的详细信息的表格和格式不会总是相同的:
id | 公司名称 | 代码 | 活动 | 结果 | ||
---|---|---|---|---|---|---|
123 | ABC | XYZ。 | DEF | MNO QRS | X039.05.01X055.01.01 | |
456 | 移动网络运营商 | XYZ。 | RVS | 105-Tax 108-FRA225-REC | X019.01.01 | 75 |
235 | ABC | QRS | 704-BREAK | X001.01.01 | 90 | |
456 | QRS | XYZMNO GIJ | 105-Tax201-欺诈 114-QURK | X001.01.01 | 75 |
标准:
ID |Company Name|Code|Activity | Result
456| MNO | 105|X011.02.03| 75 avg of 75 75 = Average of rows 2 & 4 which has these details listed by using isnumber and average combinations
表格可以有数千行并且格式不是固定的,因此使用 4 个条件从各自的列中搜索来查找任何动态公式,以获得找到的结果的平均结果。
其相同的公司数据是手动合并的年份信息,因此多次可用相同的标准,我们正在尝试显示这些标准的平均结果
任何可以提供帮助的公式或宏都会有很大帮助,因为这是我每月的任务,需要花费太多时间才能找到平均结果
感谢您的时间
问候 苏雷什
解决方法
假设:
- 用户需要输入/选择四个“标准”的特定组合
- 对满足所有四个标准的分数取平均值(如果较少,则分数不“有资格”被“平均”)
方法
您的每个标准都可以以 1 和 0 矩阵的形式进行评估,这些矩阵分别对应于“满足标准”和“不满足”。截图参考:
=IFERROR(SEARCH("*"&B15:E15&"*",B5:E8),)
现在需要对与一行“1”(灰色阴影框)相对应的分数取平均值。例如,第一行 (0,1) 对应的分数为 90;该行至少包含一个“0”,因此忽略 90。第二行包括一整行四个 1,因此 100 被计入“平均”计算......以此类推。
解决方案
我想不出一种高效/简约的方式来组合这些计算。因此,您需要的标准越多,“单细胞”方程的版本就越长。我相信有一种更快的方法,希望这个解决方案。会在这方面激发一些创造性的思考☺
幸运的是,虽然它很长,但由于方程的“必要”重复,它相对简单:
1] 平均值需要以老式的方式计算,在分子中使用总和,在分母中使用计数(否则,使用这种结构,使用简单的“平均”方程将计算/平均任何“我们不想要的 0s')。因此,分母实际上与分子相同。
2] 如前所述,有四个条件,分子由基于上述第一个公式的四个相似数组组成
=SUM(($F$5:$F$8*IFERROR(ISNUMBER(SEARCH("*"&E15&"*",$E$5:$E$8)),)*IFERROR(ISNUMBER(SEARCH("*"&D15&"*",$D$5:$D$8)),)*IFERROR(ISNUMBER(SEARCH("*"&C15&"*",$C$5:$C$8)),)*(IFERROR(ISNUMBER(SEARCH("*"&B15&"*",B$5:B$8)),))*IFERROR(ISNUMBER(SEARCH("*"&B15&"*",)))/ SUM(1*((IFERROR(ISNUMBER(SEARCH("*"&E15&"*",$B$5:$B$8)),B$5:$B$8)),))=1))
Google 表格,here。场景 1 和 2 中心折叠示例。