首页 > 其他分享 >为笛卡尔积运算而生的Reduce(Excel函数集团)

为笛卡尔积运算而生的Reduce(Excel函数集团)

时间:2023-02-19 21:57:04浏览次数:46  
标签:运算 笛卡尔 Reduce 初始值 Excel 一列 B2

我要是没记错,Reduce这词是减少的意思,可是当他作为Excel函数出现时,我真没看出哪里Reduce了……

好吧,其实可以换种理解,缩减了嵌套(帮助里写的是“将数组缩减为累计值)。

来来来,把下面不规则的A:D列的数据整成F2:K7这样一堆,函数公式要怎么写?

 

这要搁以前,就得先把A2:A4和转置后的B2:B3进行连接后拉成一列,再和转置后的C2:C4进行连接后拉成一列,再和……

这还好只有四列啊,万一有40列呢?

Reduce就不用这么折腾,公式写成:

=WRAPROWS(REDUCE(A2:A4,B2:D2,LAMBDA(a,b,TOCOL(a&TOROW(OFFSET(b,,,9),1)))),6)

Reduce的基础用法是3个,哦不对,4个参数:

=REDUCE(初始值, 数组, LAMBDA(a,b,运算))

其中的a和b是Lambda自定义的名称,不叫ab叫xy或者ij……都行。

当初始值当挂一个逗号的时候,Lambda中的运算不关a什么事,否则a就是初始值;至于这个b……

就以上面这个公式为例:

Offset(b,,,9),这里的b在第一次运算的时候,是B2:D2里的B2,向下扩展9个单元格后变成这样:

 

再用Torow转成一行,并且加上第二个参数1,就让空统统消失,变成了一行两列两个单元格{"A","B"}。如此一来,a,也就是A2:A4和他进行连接,就顺利把每种组合都弄出来了。

 

ToCol的作用就是把这样一个矩阵转成一列。

到这一步,就完成了第一次运算,接下来的运算过程和上面完全相同,只不过a和b发生了变化,a变成了上述运算出来的结果,b变成了B2:D2中的第二个值C2,最后生成的结果,咳咳,我就不截图了,太长……

第三次运算,第三次运算还有啥好说的,就那么回事了。

最终的结果就是一列36行,这个结果,就是传说中的笛卡尔积。

36行有点长,所以又用了个Wraprows给折腾成了一个矩阵,方便我截图的,可以忽略。

相关视频:就在这两天…… 

标签:运算,笛卡尔,Reduce,初始值,Excel,一列,B2
From: https://www.cnblogs.com/officeplayer/p/17135688.html

相关文章

  • poi 写 2003,2007 excel
    这段代码是poi官网上给的,不过里面有些变量重复定义,我稍微改了下注意,此代码是在poi-3.7-20101029.jar下packagecom.club.community.util;import......
  • MapReduce概述
    MapReduce是一种分布式运算程序的编程框架,是用户开发“基于hadoop数据分析应用”的核心框架。核心功能是用户编写的业务逻辑代码和系统自带的组件组合在一起,构成一个分布......
  • (转)vue 利用js触发vue-json-excel的下载操作,解决多次下载等问题
    转载地址:https://www.jianshu.com/p/4d716bec3a26 需求:列表中的每行数据都有一个导出按钮,且点击导出会发起网络请求,获取激活码列表数据。分析:我使用的vue-json-excel......
  • 取消EXCEL工作表保护的代码
    开始---excel选项----信任中心,启用所有宏点视图里面----宏,录制宏,起好名字,关闭。再点查看宏,编辑宏,把代码贴进去,关闭。再执行宏,等跳出来,你的密码是某某某,工作表保护就解除......
  • EXCEL 宏 收集
    SubCheckTableCells()Application.DisplayAlerts=FalseDimshtAsWorksheetDimi,jAsIntegerFori=1To284If(Range("e"&i).Value="")ThenI......
  • STATA CFPS变量列表导出到EXCEL整理
    SubCheckTableCells()Application.DisplayAlerts=FalseDimshtAsWorksheetDimi,jAsIntegerFori=1To284If(Range("e"&i).Value="")ThenI......
  • 算法刷题-Excel表列序号、单词拆分 II、排序链表
    Excel表列序号(数学、字符串)给你一个字符串columnTitle,表示Excel表格中的列名称。返回该列名称对应的列序号。例如,A->1B->2C->3...Z->26AA->27AB->......
  • java在线读取Excel内容
    本示例采用Springboot的Thymeleaf做前台展示,核心还是java代码,想了解Thymeleaf的可以点击​​《SpringBoot入门十六,添加Thymeleaf模板支持》​​进行入门学习,这里就只做关于......
  • 使用Python读取Excel中的数据并进行相关性分析
    在进行数据相关分析的时候,往往面对的是复杂所庞大的数据集,这个时候,Python所完成的脚本能够帮助你方便且快捷地整理很多数据!1.你所需要的第三方库在本次实验中,你所需要的......
  • excel vba宏 函数应用
          =IF(ISNUMBER(FIND("经济学",M1)),1,0)判断单元格m1中是否包含“经济学”,如果包含值为1,不包含值为0=IF(ISNUMBER(FIND("党员",N1)),1,0)判断单元格n1......