Excel将符合两个条件的数据合并到同一单元格

如下图,是左侧某公司考评成绩表,现在想要将同一部门同一考评成绩的员工姓名合并到同一单元格中如下图右侧。

在E,F列单元格中分别录入一下内容

在G2单元格输入公式=TEXTJOIN(",",1,IF(($A$2:$A$50=E2)*(C2:C50=F2),$B$2:$B$50,""))

然后按下Ctrl+Shift+Enter三键结束,即可将生产部门考评为优的员工名单录入到G2单元格中。

将G2单元格公式下拉填充到底,即可将各部门各考评成绩员工合并到单元格中

跟大家一起简单分析一下这个公式,首先是textjoin函数,TEXTJOIN 函数将多个区域和/或字符串的文本组合起来,并包括你在要组合的各文本值之间指定的分隔符。如果分隔符是空的文本字符串,则此函数将有效连接这些区域。

textjoin函数的语法结构是TEXTJOIN(分隔符, ignore_empty, text1, [text2], …)。函数中分隔符是用于将各文本间隔开的符号,第二参数是文本连接类型,有true和flash两种,true表示忽略空白单元格,而flash则反之。在Excel我们可以用1代表true,用0表示flash。因此textjoin函数在本文中的作用就是将if返回的文本用逗号作为分隔符号连接起来并且忽略空。

接着是【IF(($A$2:$A$50=E2)*(C2:C50=F2),$B$2:$B$50,"")】这一部分。if函数相信大家都了解这是一个条件函数。在本文中它的作用是当部门和考评都满足条件时,返回对应性的姓名,否则返回空。

EasyPoi是一个用于操作Excel的Java库,它允许你在Java程序中读取、写入和修改Excel文件。如果想在EasyPoi中合并同一列相同行的单元格,你可以使用`HSSFRow`和`HSSFCell`类。下面是一个简单的示例步骤: 1. 首先,创建一个`HSSFWorkbook`对象来表示工作簿。 ```java HSSFWorkbook workbook = new HSSFWorkbook(); ``` 2. 然后找到需要合并的行。假设你想合并从第2行开始的所有行的某一列(例如A列),可以获取该列对应的`HSSFSheet`和`HSSFRow`。 ```java Sheet sheet = workbook.getSheetAt(0); // 假设0是第一张表 int startRowIndex = 1; // 开始合并的行索引 while (sheet.getRow(startRowIndex) != null) { HSSFRow row = sheet.getRow(startRowIndex); //... } ``` 3. 使用`createCell()`方法创建一个新的`HSSFCell`实例,并设置其值为其他单元格的值。然后使用`mergeCells()`方法合并单元格。 ```java // 获取第一行的第一个单元格作为基准 Cell baseCell = row.getCell(0); for (int i = startRowIndex; sheet.getRow(i) != null; i++) { HSSFRow targetRow = sheet.getRow(i); Cell targetCell = targetRow.getCell(0); if (targetCell != null) { // 设置目标细胞的值等于基础细胞的值 targetCell.setCellValue(baseCell.getStringCellValue()); // 合并两个相邻的单元格 int endColumnIndex = 0; sheet.addMergedRegion(new Region(targetCell.getColumnIndex(), endColumnIndex, targetCell.getRowIndex(), endColumnIndex + 1)); // 结束于当前行 } startRowIndex++; } ``` 4. 最后记得保存工作簿。 ```java workbook.write(new FileOutputStream("output.xlsx")); workbook.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值