计算行总和的平均值,无需在 Excel 中创建新列

2023-12-06

这是我的矩阵的示例:

A   B   C   D   E
1   0   0   1   1
0   0   0   0   0

0   0   1   1   0
0   2           1

您可以将每一行视为受访者,将每一列视为调查问卷上的一个项目。

我的目标是取每行总和的平均值(即每个受访者的总分)无需创建新列并考虑给定行中的部分或全部条目为空的事实(例如,一些受访者
遗漏了一些项目 [参见第 5 行] 或没有完全完成调查问卷 [参见第 3 行])。

该矩阵的所需解 = 1.67,其中

[1+0+0+1+1 = 3] + [0+0+0+0+0 = 0] + [0+0+1+1+0 = 2]/3 == 5/3 = 1.67

正如您所看到的,尽管有五行,但我们对三个以上的值进行了平均,因为其中一行缺少数据。

我已经能够取仅对非缺失条目求和的行总和的平均值,例如:

=AVERAGE(IF(AND(A1<>"",B1<>"",C1<>"",D1<>"",E1<>""),SUM(A1:E1)),IF(AND(A2<>"",B2<>"",C2<>"",D2<>"",E2<>""),SUM(A2:E2)),IF(AND(A3<>"",B3<>"",C3<>"",D3<>"",E3<>""),SUM(A3:E3)),IF(AND(A4<>"",B4<>"",C4<>"",D4<>"",E4<>""),SUM(A4:E4)),IF(AND(A5<>"",B5<>"",C5<>"",D5<>"",E5<>""),SUM(A5:E5)))

但是,这会导致值 1,因为它将具有部分或所有值的任何行视为 = 0。

它执行以下操作:

[1+0+0+1+1 = 3] + [0+0+0+0+0 = 0] + [0+0+0+0+0 = 0] + [0+0+1+1 +0 = 2] + [0+0+0+0+0 = 0]/4 == 5/5 = 1

有谁知道如何调整当前代码以平均非缺失值或实现所需结果的替代方法?


您可以使用数组公式更简洁地完成此操作,但修复现有公式的简短答案是,如果您的工作表中某处有一个空白单元格(假设是 F1)AVERAGE 将忽略空白单元格,因此将您的公式更改为

=AVERAGE(IF(AND(A1<>"",B1<>"",C1<>"",D1<>"",E1<>""),SUM(A1:E1),F1),IF(AND(A2<>"",B2<>"",C2<>"",D2<>"",E2<>""),SUM(A2:E2),F1),IF(AND(A3<>"",B3<>"",C3<>"",D3<>"",E3<>""),SUM(A3:E3),F1),IF(AND(A4<>"",B4<>"",C4<>"",D4<>"",E4<>""),SUM(A4:E4),F1),IF(AND(A5<>"",B5<>"",C5<>"",D5<>"",E5<>""),SUM(A5:E5),F1))

这将是公式的一个数组公式版本 - 它使用 OFFSET 提取矩阵的每一行,然后使用 SUBTOTAL 查看该行中的每个单元格是否都有数字。然后再次使用 SUBTOTAL 计算每行的总和,并使用 AVERAGE 计算行的平均值。

=AVERAGE(IF(SUBTOTAL(2,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1:E1)))=COLUMNS(A1:E1),SUBTOTAL(9,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1:E1))),""))

Has to be entered as an array formula using CtrlShiftEnter

注 1 - 有些人不喜欢使用 OFFSET,因为它是不稳定的 - 您可以使用矩阵乘法代替,但可以说它不太容易理解。

注 2 - 我使用“”而不是指空单元格。有趣的是,非数组公式需要一个实际的空白单元格,但数组公式需要一个空字符串。

您可以省略空字符串

=AVERAGE(IF(SUBTOTAL(2,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1:E1)))=COLUMNS(A1:E1),SUBTOTAL(9,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1:E1)))))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算行总和的平均值,无需在 Excel 中创建新列 的相关文章

  • Excel 工作表到 iPhone 数据 -- A 点到 B 点

    尽可能简单 我有一个非常简单的 Excel 电子表格 只有 1000 多条记录 我想将其用作 iPhone 应用程序的静态数据源 最好的进攻计划是什么 我心中的可能性 1 直接读取XLS作为数据源 是否有Obj C库用于此 2 将XLS 转
  • java实现excel价格、收益率函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 VBA 通过简单命令从非连续范围的并集获取值到数组中(无循环)

    我有以下任务 表面上很简单 使用 VBA 将电子表格上多个列的值复制到二维数组中 为了让生活更有趣 这些柱子并不相邻 但它们的长度都相同 显然 可以通过依次循环每个元素来做到这一点 但这看起来非常不优雅 我希望有一个更紧凑的解决方案 但我很
  • Excel VBA 导出到文本文件。需要删除空行

    我有一个工作簿 使用以下脚本将其导出到文本文件 它工作正常 但是当我打开文本文件时 末尾总是有一个空行 这导致我在生成此文本文件后运行的另一个脚本出现问题 有关如何从导出中删除空行的任何帮助 Code Sub Rectangle1 Clic
  • 查找并替换目录中所有 Excel 文件工作簿中的字符串

    我正在编写 VBA 代码来替换位于特定目录中的多个 Excel 文件 工作簿 中的特定字符串 我尝试在 Stack Overflow 上搜索 找到答案 但这与通过 Excel 中的宏替换文本文件中的字符串有关 相同的链接是查找并替换文件中的
  • 如何使用 VBA 将 mm/dd/yyyy 更改为 dd/mm/yyyy

    我在使用 VBA 将 mm dd yyyy 转换为 dd mm yyyy 日期格式时遇到问题 我有一个这样的表 仅供参考 该表是从报告工具自动生成的 字符串操作 或任何 Excel 函数可以提供帮助吗 希望知道如何解决这个问题的人可以给我一
  • 组和平均 NumPy 矩阵

    假设我有一个任意的 numpy 矩阵 如下所示 arr 6 0 12 0 1 0 7 0 9 0 1 0 8 0 7 0 1 0 4 0 3 0 2 0 6 0 1 0 2 0 2 0 5 0 2 0 9 0 4 0 3 0 2 0 1 0
  • 证明 Excel VBA Scripting.Dictionary 不保留项目插入顺序

    我正在尝试决定是否为我的项目使用 Excel VBA 集合或字典 出于多种原因 我倾向于字典 但在使用字典时我会继续阅读它For Each循环检索字典项目或从字典 Items 数组读取项目时 检索顺序可能不是添加项目的顺序 这对于我的应用程
  • EPPlus Excel 行高不一致

    我已经使用 EPPlus 生成了一个 excel 文件 在 MS Office 2007 中一切似乎都很完美 但客户端使用的是 MS Office 2010 2013 并且在第 29 行之后未设置行高 这是一个非常奇怪的问题 我已经尝试了
  • 根据单元格值向用户窗体添加复选框

    我对 VBA 很陌生 只有 3 天 但我发现它非常有用且易于使用 但现在我面临一个问题 我需要制作一个具有不同复选框的用户窗体 但我需要根据工作表某一列中使用的信息自动添加它们 我相信我可以使用 For Each Next 但我真的不知道如
  • 在组合框中显示可见工作表

    您好 我有以下代码来在组合框中显示工作表 创建工作表后 工作表会自动添加到列表中 我不希望隐藏的工作表在保管箱中可见 我怎么做 Option Explicit Private Sub ComboBox1 Change If ComboBox
  • Pandas 0.22.0:IndexError:读取 xls 时列表索引超出范围

    我正在尝试将 282Mb 65536 行 x 138 列 xls 文件加载到 pandas 数据框中 import pandas as pd import os filename r invoicing xls dir os path di
  • 文件夹.文件的相对路径

    我有一个 Excel 文件 在同一文件夹中还有一个包含我想要包含的 CSV 文件的文件夹 使用 来自文件夹 查询 第一步将给出以下查询 Folder Files D OneDrive Documents Health Concept2 现在
  • R 中按时间划分的平均值

    我每秒测量一次化合物浓度 我想求 30 秒和 60 秒的平均值 我一直在阅读这里的帖子 我尝试过lubridate and dplyr 但没有运气 我正在努力完成这项工作 但我一直没能做到 我正在从 SAS 过渡到 R 所以请耐心等待 这是
  • 在二维范围内查找匹配的公式

    我需要一个公式来查找二维范围内的值并返回匹配单元格的坐标或单元格地址 例如 R A B C 1 John Matt Pete 2 Sara Bret Chad 3 Lila Maya Cami 我想搜索范围A1 C3 for Chad并返回
  • Excel VBA - 添加自定义数字格式

    我有一个在 Excel 外部生成的文件 其中包含许多百分比 所有这些百分比都有一位小数 当导入到 Excel 中时 Excel 会在百分比中添加第二位小数 这似乎是 Excel 中百分比的某种默认格式 它只是添加了一个 0 我想将所有两位小
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • R中IF函数的使用

    我正在短跑ifR 中的函数 但收到以下警告消息 In if runif 50 0 1 lt 0 69 the condition has length gt 1 and only the first element will be used
  • PHP条件,如果当前页面,则链接突出显示[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个带
  • Excel 2013 数据透视表不会更改当前页面,除非手动导航到

    我们有一小段 VBA 代码 多年来一直完美运行 本质上是 Me PivotTables APivot PivotFields AField CurrentPage Some text 这种方法一直有效 直到 Excel 2013 该行将失败

随机推荐

  • react-native:共享 api,将 base64 字符串而不是图像传递给 WhatsApp

    嘿 我正在努力通过 WhatsApp 分享 Base64 图像 在 iOS 和 Android 中 共享的是实际的基数 64 而不是图像 如果我使用 iMessage 或电子邮件 iOS base64 图像将按预期转换并显示 在 Andro
  • 使用内嵌引号将 JSON 导入到 R 中

    我正在尝试将以下 JSON 文件 my file json 读入 R 其中包含以下内容 id 484 comment They call me Bruce 使用 jsonlite 包 0 9 12 出现以下错误 library jsonli
  • Actionbarsherlock searchview:setOnQueryTextListener

    我正在尝试使用 ActionBarSherlock 的搜索视图在列表中创建一个过滤器 我目前拥有的代码如下 Override public boolean onCreateOptionsMenu final Menu menu getSup
  • 二变量多项式的霍纳规则

    霍纳规则用于简化在特定变量值下评估多项式的 过程 https rosettacode org wiki Horner 27s rule for polynomial evaluation Standard ML 我已经使用 SML 轻松地将
  • 降低 R 中双打的精度

    我正在寻找一种方法 通过使用基本 R 工具而不求助于 C 或 C 始终忽略 R 中浮点数之间的微小差异 这些是根据 IEC 60559 的双精度浮点数 换句话说 我想 四舍五入 双精度浮点数的有效数字部分 这样就可以返回 TRUE 而不是
  • 努力尝试在 .net 4.5 中使用 HttpClient 获取 cookie 响应

    我有以下代码可以成功运行 我不知道如何从响应中获取 cookie 我的目标是我希望能够在请求中设置 cookie 并从响应中获取 cookie 想法 private async Task
  • 如何增加 JFileChooser 的大小?

    我正在编写一个 Java 应用程序 需要在屏幕分辨率非常高的设备上运行 我需要显示的唯一 UI 组件是 JFileChooser 由于屏幕分辨率太高 FileChooser 显得太小 有没有一个简单的命令可以让它变大 理想情况下 我希望保持
  • 如何在 PowerShell 窗口中更改两个引号之间的文本颜色

    我无法更改两个引号之间的文本颜色 现在它的颜色是暗蓝色 我可以在哪里设置此设置或者我必须执行哪个命令 sample PSReadline v1 x 发货时附带Windows PowerShellWindows 10 及更高版本上的 v5 1
  • PHP 数据对象插入未执行

    我的 PHP 表单刚刚更改为使用 PDO 我唯一能告诉的是执行不起作用 我应该用它传递一些东西吗 db new PDO mysql host localhost dbname x charset utf8 x x if db die Cou
  • 为什么 strcmp 在 c 中不起作用? [复制]

    这个问题在这里已经有答案了 我刚刚开始学习 c 我想尝试 strcmp 函数 但如果我运行它 它总是给我结果 1 我输入什么字符串并不重要 由于第一个字符串比第二个字符串短 因此我期望结果为 1 include
  • 准备 JNA 以在 Eclipse 中使用

    背景 我正在做机器学习研究 并且想使用FANN构建神经网络的库 源代码是用 C 编写的 但我需要对其进行包装 以便我可以将它与我们创建的许多 Java 类一起使用 问题 该网站提供了一个已广受好评的名为 fannj 的包装软件的链接 它的依
  • 变量和打印变量之间的区别[重复]

    这个问题在这里已经有答案了 我有以下代码 假设我正在 IDLE 中逐行输入 coding utf 8 s u My Currency is s print s for s 我得到一个输出 u My Currency is xa3 for p
  • 如何防止JasperReports TextField中的重复数据

    我在用贾斯珀报告文本字段数据存在一些问题 请继续下一页 我在详细信息带中有 3 个文本字段 带 splitType 拉伸 每个文本字段都有边框 并且 isPrintWhenDetailOverflows 参数设置为 true 当文本字段中的
  • 内部编译器错误:总线错误

    我试图制作一个带有详细信息视图的 UITableView 但出现两个错误 在以下代码之后 我得到了两次相同的错误 内部编译器错误 总线错误 我不知道为什么 有人能帮我吗 您可以在下面找到代码的图像here void tableView UI
  • ASP.NET:为什么身份验证超时后 FormsAuthenticationTicket 为空?

    我正在根据我之前的问题和答案实现身份验证超时检测机 制here 我已经实现了一个 HTTP 模块 该模块使用 AuthenticateRequest 事件来运行代码来捕获身份验证期限是否已过期 执行此操作的代码如下 public class
  • Python - 是否可以在 Discord.py-v1.0 中 wait_for 一个或另一个事件?

    有没有可以用的wait for以这样的方式 它将等待reaction add or reaction remove 我见过有on reaction add and on reaction remove功能 但我想要一种没有这些功能的方法 我
  • 在android中将音频注入语音流

    我有一个想法 为愚蠢的人构建一个 Android 应用程序 可以帮助他们接听电话 我想将文本转换为语音 然后通过通话流传输 在android平台上 仍然无法播放音频以便对方在通话过程中听到吗 抱歉 简短的回答似乎仍然是否定的 我很乐意在这一
  • 将 Visual Studio Code 连接到远程 Mysql 数据库

    我知道这应该更加集中 但我为此浪费了一整天的时间 我无法弄清楚 我正在尝试使用任何可用的 VS Code 扩展连接到远程 MySQL 数据库 我尝试使用SQLTools with MySQL MariaDB 插件 适用于 VS Code 的
  • mysql 按计数排序性能

    我发现以下内容有点令人困惑 如果我执行以下查询 当按索引值 关键字 排序时 需要 0 0008 秒 但当按 计数 排序时 需要 3 秒以上 以下过程大约需要 0 0008 秒 SELECT keyword COUNT DISTINCT pm
  • 计算行总和的平均值,无需在 Excel 中创建新列

    这是我的矩阵的示例 A B C D E 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 2 1 您可以将每一行视为受访者 将每一列视为调查问卷上的一个项目 我的目标是取每行总和的平均值 即每个受访者的总分 无需创建新列并考虑