实现 Excel 多列数据组合
前言
因好朋友的工作要求需要在 Excel上实现 3种数据的排列组合,如果使用编程语言无非就是嵌套循环,而要在 Excel 实现没怎么实现过,在实现后觉得挺有意思的特此记录方便后续非工程师的人员可以方便实现该需求。
效果预览
Excel函数须知
COUNTA()
用于解决统计某列非空单元格数目,常用的一般是 COUNT(),但是他无法处理非数字列的统计,本文用于计算集合的最大值。
举例 COUNTA(A:A),效果图中做了减 1的操作,所以显示为 3
INDEX()
在给定单元格区域中,返回特定的单元格值或者引用,本文用于赋值。
举例 INDEX(A:A, 2), 返回的结果就是 上海。
ROW()
返回一个引用的行号,本文用于实现遍历。
MOD()
返回两数相除的余数,本文用于实现递归循环。
实现说明
如效果图的结果来看
在 J列的函数公式:INDEX(A:A,(ROW(J2)-2)/($F$2 * $G$2) + 2)。
步骤 | 公式 | 说明 |
---|---|---|
0 | ROW(J2)-2 | 因为需要过滤掉 表头,并且从 0 开始所以需要 - 2 |
1 | $F$2 * $G$2 | 即产品名称和配件的组合数目,即循环次数, 2 * 5 |
2 | (ROW(J2)-2) / ($F$2 * $G$2) | 取整数进行分类汇总 |
3 | INDEX(A:A, (ROW(J2)-2) / ($F$2 * $G$2) + 2) | 在 A列范围内,而 + 2 则是确保正确取值过滤无意义数据,即A0,A1 |
如此实现,那 I列数据就会如下图成功遍历 30条有效数据(3 * 2 * 10)
在 K列的函数公式:=INDEX(B:B,MOD((ROW($J2)-2) / $G$2,$F$2) + 2)
在 L列的函数公式:=INDEX(C:C,MOD(ROW($J2)-2)),$G$2) + 2)
上述公式一般都大同小异,需要注意是 K 列是 / $G$2,L列 没有 / (可以理解为 / 1),这就是对应的循环次数的不一致,从而实现程序上的嵌套循环。
想法
很有趣的体验,需了解循环次数防止异常,又要合理使用 $符号确保支持水平扩展,从实现复杂度来看非常简单,不过跟用程序实现,前者更具成就感。
实现 Excel 多列数据组合相关推荐
- excel一列数据两两组合(excel一列的数据等于另一列)
excel两列数据排列组合 没有一键搞定的方法,所以,只能手动输入,几个公式拖拉 C1=A1&$B$1,D1=A1&$B$2,E1=A1&$B$3,然后拖拉这3个单元格向下3个 ...
- python 在excel指定列添加数据_python读取excel指定列数据并写入到新的excel方法
如下所示: #encoding=utf-8 import xlrd from xlwt import * #------------------读数据------------------------- ...
- wps excel 多列数据同时筛选即高级筛选的用法
wps excel 多列数据同时筛选即高级筛选的用法 最近在使用excel时,多了个希望可以多列数据同时筛选数据的需求,研究了一下,写下笔记记录一下,方便自己以后查看. 主要操作方法如下: 这是我的e ...
- python excel写入一列_python读取excel指定列数据并写入到新的excel方法
如下所示: #encoding=utf-8 import xlrd from xlwt import * #------------------读数据------------------------- ...
- matlab数据变成一列数据,matlab读取excel表格列数据-matlab导入excel后,怎么把数据提取成一列?...
怎么用matlab读取excel表格中的一列十六进制数据? x=xlsread('oillack.xls','sheet1','a1:a73') excel文件名是oillack.xls,sheet1 ...
- JAVA获取excel第一列数据
JAVA获取excel第一列数据 提示 1:需要将.xlsx格式转为.xls(不懂得自行百度) 2:不要一次读取太多数据,导致内存溢出 一个简单的方法========== @GetMapping(&q ...
- python读取excel某列数据
文章目录 一.python读取excel某列数据 二.将读取的数据变为浮点数 一.python读取excel某列数据 import xlrdworksheet = xlrd.open_workbook ...
- excel两列乱序姓名如何一一对应 excel 两列数据自动配对
excel两列乱序姓名如何一一对应?Excel是非常好用的数据表格处理软件,能够帮助用户快速的处理复杂的数据,而excel中有很多实用的功能,需要我们合理使用.有时需要将两个名单中的数据自动对应,自己 ...
- python对excel两列求和写入另一列_python读取excel指定列数据并写入到新的excel方法...
如下所示: #encoding=utf-8 import xlrd from xlwt import * #------------------读数据------------------------- ...
- 技巧:给excel某列数据加双引号和逗号,用于sql中in()查询
配套视频笔记:https://www.bilibili.com/video/BV1iG4y1U7r2 背景 就是需求给过来一个excel,我们要用其中的某一列作为条件去查询数据库,删数据或者改数据. ...
最新文章
- CentOS 自动备份MySQL
- sublime 消除锯齿_如何在Sublime中消除麻烦
- Google Analytics Advanced Configuration - Google Analytics 高级配置
- gui显示文本动态框
- 《零基础入门深度学习》解读
- PHP设计模式——职责链模式
- 使用append()方法,原先的js不起作用
- 用matlab数学建模报告,Matlab数学建模实验报告.doc
- java ppt转图片 失真_java poi 实现ppt转图片(解决图片不高清问题)
- 抖音推独立社交产品“多闪” 主打视频社交PK微信
- oracle数据库报12514,Oracle数据库ORA-12514错误的解决办法
- 计算机 桌面上的文件怎么发送,文本文件如何发送到QQ邮箱里?
- 小区门禁系统代码C语言,一套完整的门禁系统(原理图+源程序),包括电源充电...
- matlab 滤波器篇
- GPS授时系统(北斗授时设备)应用及案例
- 大数据风控AI竞赛总结
- Java--反射(框架设计的灵魂)
- REDIS缓存集群介绍
- 图书速读 | 一分钟读完《如何高效学习》
- 帆软填报-解决Error:很抱歉,导入EXCEL格子数超过限制