首页 > 其他分享 >Excel 如何批量将矩阵(多行多列)数据转为单行或单列数据

Excel 如何批量将矩阵(多行多列)数据转为单行或单列数据

时间:2024-03-29 23:11:26浏览次数:39  
标签:10 reference 单列 单元格 Excel 坐标 OFFSET 多列 ROW

该问题源于这样一个实践场景,试想有一个花名册,如下这样:

现在需要根据这个花名册批量将其转换为考试时贴在桌上的小标签,如下这样:

那么这个需求本质上就是将多行多列数据(考生姓名、考生编号、证件号码三列)转为单列数据(上图需求结果的第二列)。第一列是静态数据,第三列是递增数列,相对都比较容易实现。

现在就教大家如何实现。

需要用到的 Excel 函数

OFFSET

实现该需求的最主要的函数,能实现通过计算坐标取值。这句话有点绕,大多数时候我们写函数的时候是将对应单元格的坐标写死的,也就是将一列数据经过计算后输出到另一列,输入的单元格和输出的单元格的坐标是彼此对应的。而这个函数能够帮我们按照自己的需求“计算”出所需坐标并取值。

具体用法如下:

OFFSET(reference, rows, cols, [height], [width])

参数解释:

  • reference: 偏移坐标。如我们默认的偏移坐标是(0,0),即左上第一个点。如果设置了偏移坐标,后面的 rows 和 cols 都是相对 reference 来讲的。
  • rows: 第几行。相对reference 来讲。
  • cols: 第几列。reference 来讲的。
    剩余的两个参数本文当中用不到,在此不作解释。

实际坐标为(reference + rows, reference + cols)。如想获取坐标为(10, 10)的单元格,则OFFSET((5, 5), 5, 5),OFFSET((3, 7), 7, 3)都是获取到这个单元格的函数。

QUOTIENT

整除,无余数。

QUOTIENT(10, 5) = 2

QUOTIENT(10, 3) = 3

MOD

取余。

MOD(10, 5) = 0

MOD(10, 3) = 1

ROW

获取横坐标。

ROW((3, 5)) = 3

ROW((5, 3)) = 5

其他用到的 Excel 小技巧

相对位置和绝对位置

在函数中要直接获取一个单元格,可以A1,也可以$A$1。前者是相对位置,也即坐标值会随着单元格的拉大而变化。后者是绝对位置,反之,坐标值不会随着单元格的拉大而变化。

具体实现


=OFFSET(Sheet2!$B$2,QUOTIENT(ROW(A3), 3)-1,MOD(ROW(A3), 3))

=OFFSET(Sheet2!$B$2,QUOTIENT(ROW(A3), 3)-1,3)

参考

标签:10,reference,单列,单元格,Excel,坐标,OFFSET,多列,ROW
From: https://www.cnblogs.com/liurundong/p/18104811

相关文章

  • Python 基于 xlsxwriter 实现百万数据导出 excel
    追加导出+自动切换sheet⚠️excel中的每个sheet最多只能保存1048576行数据#获取项目的根路径rootPathcurPath=os.path.abspath(os.path.dirname(__file__))rootPath=curPath[:curPath.find(你的项目名称+"/")+len(你的项目名称+"/")]#临时文件l......
  • Python 基于 xlsxwriter 实现百万数据导出 excel
    增量导出+自动切换sheet⚠️excel中的每个sheet最多只能保存1048576行数据#获取项目的根路径rootPathcurPath=os.path.abspath(os.path.dirname(__file__))rootPath=curPath[:curPath.find(你的项目名称+"/")+len(你的项目名称+"/")]#临时......
  • 【小黑送书—第十四期】>>重磅升级——《Excel函数与公式应用大全》(文末送书)
    今天给大家带来AI时代系列书籍:《Excel2019函数与公式应用大全》全新升级版,ExcelHome多位微软全球MVP专家打造,精选ExcelHome海量案例,披露Excel专家多年研究成果,让你分分钟搞定海量数据运算!由北京大学出版社出版,上一版长期雄踞Excel函数类图书销量前列,《Excel2019函数与......
  • Qt自定义插件写Excel表格
    网上找到一个开源的Qt插件,下载下来,生成头文件和库文件,可以不依赖电脑是否安装Excel软件,是否有Excel驱动,可以直接输出excel文档https://github.com/dbzhang800/QtXlsxWriter/tree/master/src/xlsx#include"CopyAllFileThread.h"#include<QFileInfo>#include"LocalDb.h"#inc......
  • Finereport11 类Excel筛选
    微信公众号:次世代数据技术关注可了解更多的教程。问题或建议,请公众号留言或联系本人;微信号:weibw162本教程视频讲解可以关注本人B站账号进行观看:weibw162一、需求描述在使用FIneReport软件开发时,我们希望前台报表展示时可以类似Excel表格筛选那样,在表头进行多选筛选过滤显......
  • 关于《完全手册Excel VBA典型实例大全——通过368个例子掌握》随书样例的下载
    按照早先下载的电子教程查看和编写vba,有些例子使用运行错误,想着看看原始文件。容易看到,网上有提供的doc或者pdf文档,都不完整,可能是{完全手册Excel_VBA典型实例大全:通过368个例子掌握}.{doc,pdf}这样命名的,139页或者134页的样子。搜索发现很多一些链接要么失效,要么是需要相应的积......
  • 前端base64转换成excel
    baseToExcel(baseStr,fileName){varraw=window.atob(baseStr);varuInt8Array=newUint8Array(raw.length);for(vari=0;i<raw.length;i++){uInt8Array[i]=raw.charCodeAt(i);}constlink=......
  • LibreOffice 将word,excel,PowerPoint文件转换PDF
    安装LibreOffice并将Word和Excel文件转换为PDF文件,并设置文件存放路径的步骤如下:1.安装LibreOffice如果尚未安装LibreOffice,可以通过以下命令在Ubuntu上安装:sudoaptupdatesudoaptinstalllibreoffice2.使用LibreOffice将Word和Excel文件转换为PDF要将Word和Excel......
  • Excel生成随机密码
    针对生成一个8到12位包含大小写字母、数字、以及特殊字符的随机密码的需求,我们可以采用VBA来实现,以确保每种字符至少包含一次,同时随机生成密码长度。下面是一个更贴近需求的VBA函数示例:FunctionGenerateComplexPassword()AsStringDimpasswordLengthAsIntegerDim......
  • EasyExcel库来读取指定Excel文件中的数据
    FileexcelFile=newFile(path);if(!excelFile.exists()){thrownewException("Thespecifiedexcelfiledoesnotexistatpath:"+path);}//使用EasyExcel读取文件......