根据规则将一行拆成多行

某Excel表格如下。

ABCD
1CreditBankCodeBeneficiaryNameNarrationAmount
2011BENSON MATHIASApril 2024 Salary72558.95
3057SAIFULLAHI RABIUApril 2024 Salary45000
4076ABDULKADIR AUWALUApril 2024 Salary55000
5001001ABDULKADIRApril 2024 Salary85000
6002002ABDULKADIRApril 2024 Salary105000
7003003ABDULKADIRApril 2024 Salary115000

要求将一行拆成多行,规则是:如果Amount小于50000则不拆分;如果Amount大于50000,则每30000拆成一条记录。

ABCD
10CreditBankCodeBeneficiaryNameNarrationAmount
11011BENSON MATHIASApril 2024 Salary30000
12011BENSON MATHIASApril 2024 Salary42558.95
13057SAIFULLAHI RABIUApril 2024 Salary45000
14076ABDULKADIR AUWALUApril 2024 Salary30000
15076ABDULKADIR AUWALUApril 2024 Salary25000
16001001ABDULKADIRApril 2024 Salary30000
17001001ABDULKADIRApril 2024 Salary30000
18001001ABDULKADIRApril 2024 Salary25000
19002002ABDULKADIRApril 2024 Salary30000
20002002ABDULKADIRApril 2024 Salary30000
21002002ABDULKADIRApril 2024 Salary45000
22003003ABDULKADIRApril 2024 Salary30000
23003003ABDULKADIRApril 2024 Salary30000
24003003ABDULKADIRApril 2024 Salary30000
25003003ABDULKADIRApril 2024 Salary25000

使用 SPL XLL,输入公式:

=spl("=E@b(?.news((t=~4,100.iterate@a(30000,,!if(t>50000,t-=30000))|t);?.~1,?.~2,?.~3,~))",A2:D7)

Picture1png

函数 E@b 去掉表格的标题,news 根据规则将一行拆为多行,100.iterate 循环迭代 100 次,符合条件时停止迭代(这里假设最多拆分 100 行,可根据需要扩大)。~ 表示序列的当前成员,~1 表示当前成员的第 1 个子成员,符号 | 用于合并序列。

免费课程、免费软件下载

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值