excel怎么对非数字求和汇总?

如:学生小王的成绩为:A+,A,A+,A,B,B-……想得到的成绩汇总求和为:2A+,2A,1B,1B-

如果在低版本里,用公式计算可能相当复杂,但是有了TEXTJOIN函数和UNIQUE函数,这个问题就好办多了。

计算公式:

=TEXTJOIN(",",,UNIQUE(COUNTIF(A1:F1,A1:F1)&A1:F1,1))

公式解析:

COUNTIF(A1:F1,A1:F1)&A1:F1, 用COUNTIF函数计算A1:F1里每一个数据的数量,然后与这些数据连接起来,这样每个数据前面就有了A1:F1中这个数据分别有几个,

但是这样计算下来,数据是有重复的,如2A+,需要将重复数据去除,用UNIQUE函数就可以,由于生成的内存数据是横向的,需要是按来列去除重复,UNIQUE函数需要设置第二个参数,

UNIQUE(COUNTIF(A1:F1,A1:F1)&A1:F1,1)

最后,用TEXTJOIN函数将这些去重复的数据合并到一起,就得到了需要的去除重复数据的统计结果。

=TEXTJOIN(",",,UNIQUE(COUNTIF(A1:F1,A1:F1)&A1:F1,1))

UNIQUE函数是在excel2021版及以上版本支持的,低于excel2021版需要另想其它办法。

### 如何在MATLAB中读取Excel文件并对满足特定条件的数据求和 #### 使用`xlsread`函数读取数据 为了实现这一目标,可以先利用`xlsread`函数从Excel文件中提取数值型数据。此命令允许指定要读入的具体工作表以及单元格区域[^1]。 ```matlab [num, ~, ~] = xlsread('sample.xlsx', 'Sheet1', 'A2:D10'); ``` 上述代码片段展示了如何仅获取名为'Sheet1'的工作表内'A2:D10'区域内含有数字的内容,并将其存储到变量`num`之中。 #### 数据筛选与求和操作 接着针对已加载至内存里的矩阵执行逻辑判断找出符合条件的条目,再通过内置sum()函数完成累加过程: 假设现在有一个学生成绩单,其中第三列为数学成绩,想要计算所有大于等于85分的学生总数,则可按照如下方式进行编程: ```matlab % 假设第3列表示数学分数 mathScores = num(:, 3); % 找出所有大于等于85的成绩索引位置 qualifiedIndices = find(mathScores >= 85); % 对这些合格的成绩做求和 totalQualifiedScore = sum(mathScores(qualifiedIndices)); disp(['总分为 ', num2str(totalQualifiedScore)]); ``` 这段脚本首先定义了一个子集数组`mathScores`用于保存原始数据集中对应列的所有元素;之后运用find()定位那些超过设定阈值的位置形成一个新的向量`qualifiedIndices`;最后调用sum()统计该部分成员之和并打印出来。 对于更复杂的情况——比如基于多个字段组合起来作为过滤依据时,可以通过创建布尔表达式来进行更加精细的选择。例如当需要同时考虑两门课程(如第二列语文成绩不低于90且第四列英语成绩不小于70),则应这样写: ```matlang chineseScores = num(:, 2); englishScores = num(:, 4); combinedCondition = (chineseScores >= 90) & (englishScores >= 70); selectedRows = num(combinedCondition, :); % 获取符合联合条件的所有行记录 overallSumOfSelected = sum(selectedRows(:)); % 计算选中范围内全部数值项相加之和 disp(['所选条件下各项得分总计为:', num2str(overallSumOfSelected)]); ``` 这里引入了两个额外的一维数组分别代表不同学科的结果分布情况,并构建复合谓词来识别既定标准下的实例集合。最终实现了对限定区间内的整体汇总分析功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值