当前位置:首页 > 技术文章 > 正文内容

73 “动态数组”用法详解(八) -选择行列CHOOSECOLS函数

zonemu3个月前 (07-10)技术文章48

今天继续分享动态数组专属函数系列行列数组函数系列之选择行列。选择行列这个函数原来没有发现他们的特殊之处,一直到有一天需要把常规公式更改为动态数组后,才发现这个函数的优秀之处。

老规矩,还是看语法,再看案例和使用场景。

CHOOSECOLS函数

函数的定义为:包含要在新数组中返回的列的数组;

函数的语法:=CHOOSECOLS(array,col_num1,[col_num2],…)

通俗的说法:选中多列后,录入对应的列号,就返回对应的列。

分别录入以下函数就可以很直观的知道这个函数的基本用法了。

B9=CHOOSECOLS(B2:E7,1),选择第一列;

D9=CHOOSECOLS(B2:E7,2,4),选择第二列和第四列;

G2=CHOOSECOLS(B2:E7,{1,3,4})选择多列的不同写法,这里注意用的大刮号的写法;

案例1:数据自动整理

场景;有时候从ERP导出的数据会非常多列,有很多列都是生产计划员不需要的,再或者是自己建模建立好的标准,别人发过来的数据,行列又不一样了,这样复制数据的时候就会错列,无法完美对齐。

如下图,列数非常多,需要的数据有的在第2列,有的在第6列,还有的可能在第8列,需要快速整理,简化报表。

对于以上的数据,用到选择列函数就非常简单了,只需要知道对应的列号,就可以快速选择了,先确定以下基本表对的列号:

{"下单日期","任务号","装配件","任务状态","单位","任务数量","完工数量","生产部门","评审交期"},这个表头对应的列号可以人工数,也可以用MATCH函数去判断,录入函数

=MATCH(A1:I1,'1.复制离散任务'!1:1,0),得到一个数字数组:{2,9,12,10,5,14,15,16,7},这个就是上面对应源数据的列号,只需要放到选择列号的第二参数就可以了,录入函数

=CHOOSECOLS('1.复制离散任务'!A2:R30000,MATCH(A1:I1,'1.复制离散任务'!1:1,0)),就可以得到标准化报表的结果。

上面的数据会有问题,就是范围选择比较大的情况,下面会出现0,如何把0过滤掉呢?

案例2:配合筛选函数过滤无效数据

场景:有时候建模的时候,因为源数据是变量,所以一般会预留足够多的行以防止数据过大,超出原先设定的引用范围(FILTER函数参数选择整列A:A,建模的时候,数据运算量非常大,会非常卡)。

当设定的范围过大,数据不哆的时候,没有数据的就会显示为0,造成数据不是最佳的。此时选择函数加上筛选函数就非常好的完成这个问题了。

为了让公式简单一点,先用LET函数把刚刚选择函数的结果设定为A,A代表刚才的结果。

CHOOSECOLS(A,1)<>0,表示选择A的第1列中不等于0作为FILTER函数的条件,录入函数FILTER(A,CHOOSECOLS(A,1)<>0),就把0的筛选出去了,最后合并公式:

=LET(A,CHOOSECOLS('1.复制离散任务'!A2:R30000,MATCH(A1:I1,'1.复制离散任务'!1:1,0)),FILTER(A,CHOOSECOLS(A,1)<>0))

我是古哥:

从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!

相关文章

7种超轻量级的Linux发行版,能够帮助你找到适合自己的操作系统

Linux是一种非常受欢迎的开源操作系统,而且有许多版本可以选择。有时候,你需要一种超轻量级的Linux发行版,它可以在资源有限的设备上运行,并且能够快速启动。本文将介绍7种超轻量级的Linux发行版...

Vue状态管理:Pinia完整指南(状态管理vuex)

概述本文专注于Vue的状态管理。我们将深入探讨如何使用Pinia来管理Vue应用程序的状态。状态管理使用props和emit进行父子组件间的数据协作虽然方便,但在以下情况下可能不够充分,数据传递往往会...

解决GitLab报错:not allowed to force push code to a protected branch

当 force push 代码的时候,可能会遇到如下错误:You are not allowed to force push code to a protected branch on this pr...

Java教程:GitLab在项目的环境搭建和基本的使用

gitlab-使用入门1 导读本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作GitLab简介...

如何使用git clone克隆包含子模块的仓库

技术背景在软件开发中,当项目规模逐渐增大时,为了更好地管理代码,我们常常会使用子模块将项目拆分成多个独立的部分。Git 作为目前最流行的版本控制系统,提供了管理子模块的功能。但在克隆包含子模块的仓库时...

(在线编辑DWG)网页CAD二开实现焊接符号绘制

前言在工程制图和制造领域,焊接符号(Welding Symbols)是用于表示焊缝类型、尺寸、位置以及工艺要求的标准化图形语言。广泛应用于机械设计、钢结构、船舶制造、压力容器等行业中,帮助技术人员理解...