合并相同的行并添加序号

 

比如说有一个学校有20多个学院200多个班级,我们想把相同的学院合并成一行并添加序列,怎么做呢,我们可以一个个学院地合并,但是比较麻烦,不是东哥性格,我们可以这么做,如下表

b45fe6435a434faab74841eee415ff36.png

先对base表创建分类汇总表

4acc67fbe1914ba2b4de515a5954ab97.png

选定的汇总项一定得是A列,这样的好处是他会给新增一列,后边用着比较方便,选定的汇总项就是汇总数据出现的列,汇总数据出现在A列,则汇总字段只能在左侧新增一列,如此而已,汇总完成之后,效果是这样的

9148aadf8e4044ed94ce3a85f9a9bf4f.png

那么,这个时候我们只需要选定新生成的A列中的空白列合并即可,具体做法是,先选定A列,然后用Ctrl+G调出定位,选择 空值,确定

b2d436b3f07e4886a8b569283bc83867.png

确定之后,A列的空值是选定状态,然后对空值合并居中e615e7aaf56b43e9843b6983d8af04ad.png

我们再删除分类汇总8d6d1305b5264161adf206e18cd7fa13.png

则会在A列生成我们想要的效果,我们用格式刷把A列的格式刷到B列,则生成了按学院合并的效果

d1d0cb62fbce48ae82c540c59d4fc374.png

 

那么,如何对合并的单元格添加序列呢,我们可以选择A列需要填充序列的区域,按住Ctrl并在A2列处输入 =COUNTA($A$1:A1)(此时要保证A1是非空单元格,在A2处填写这个公式的含义就是统计A1列出现的非空单元格个数),此时我们用Enter键填充序列(切记:在填充序列完成之前不要放开Ctrl),注意不能双击填充或者Ctrl+E填充!b2ce15f2f52945bb930a45acc1c94c1f.png

然后成了!
a7b0abc798814abc9c15a501207225bb.png

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Ant Design 的表格中合并并显示号,可以使用 `render` 属性来自定义表格单元格的渲染。具体步骤如下: 1. 定义一个变量 `rowSpanMap` 来存储每个需要合并的单元格的号和跨度值。 2. 在 `columns` 配置中定义一个序号列,设置 `render` 属性为一个函数,函数的参数为当前的值、当前的数据索引和当前的数组。 3. 在 `render` 函数中计算当前单元格是否需要进合并,如果需要则将合并数和号存储到 `rowSpanMap` 变量中,并返回一个空单元格。 4. 在 `render` 函数中返回一个带有号的单元格,同时根据当前号和 `rowSpanMap` 变量中的值计算出当前单元格的 `rowSpan` 属性值,从而实现合并。 以下是示例代码: ```jsx import { Table } from 'antd'; const dataSource = [ { name: 'John', age: 32, address: 'New York' }, { name: 'Mike', age: 26, address: 'Los Angeles' }, { name: 'Amy', age: 29, address: 'Chicago' }, { name: 'Bob', age: 28, address: 'Houston' }, { name: 'Jack', age: 30, address: 'San Francisco' }, ]; const columns = [ { title: '序号', dataIndex: 'index', render: (text, record, index, arr) => { const rowSpanMap = {}; let rowSpan = 1; if (index > 0 && arr[index - 1].age === record.age) { rowSpan = 0; const prevIndex = arr[index - 1].index; rowSpanMap[prevIndex] = rowSpanMap[prevIndex] || 1; rowSpanMap[prevIndex]++; } const currentIndex = index + 1; const totalRowSpan = rowSpanMap[currentIndex] || rowSpan; return { children: currentIndex, props: { rowSpan: totalRowSpan, }, }; }, }, { title: '姓名', dataIndex: 'name', }, { title: '年龄', dataIndex: 'age', }, { title: '地址', dataIndex: 'address', }, ]; function App() { return <Table dataSource={dataSource} columns={columns} />; } ``` 在上述代码中,我们定义了一个 `rowSpanMap` 变量来存储每个需要合并的单元格的号和跨度值。在 `render` 函数中,我们检查当前的年龄是否与前一相同,如果相同则将当前的 `rowSpan` 属性设置为 0,并将前一的跨度值加 1。最后,我们使用 `currentIndex` 和 `totalRowSpan` 计算出当前单元格的号和跨度值,并返回一个带有号的单元格。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值