无法使用 isnumber search

问题描述

Example Table screnshot attached and even pasted in the comments below

我试图找到一个公式,它可以帮助我找到与 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. 用户需要输入/选择四个“标准”的特定组合
  2. 对满足所有四个标准的分数取平均值(如果较少,则分数不“有资格”被“平均”)

方法

您的每个标准都可以以 1 和 0 矩阵的形式进行评估,这些矩阵分别对应于“满足标准”和“不满足”。截图参考:

=IFERROR(SEARCH("*"&B15:E15&"*",B5:E8),)

Depiction in Excel - grey box

现在需要对与一行“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 中心折叠示例。