本文作者:office教程网

excel怎么根据人名提取相应的数据

office教程网 2023-04-20 06:16:47
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要:

Excle中A列是乱序,B列是人名排序,什么函数公式可以让A列根据B列排序,且一一对应?也就是说,如下所示,A列是一种排序(A列中每个单元格中有个人名,这个人名对应B列中的人名),B列一种排列顺序,C列的排列顺序要对应B列中的人名(使A列和B列形成一一对应关系),除了复制粘贴可以用什么函数公式得到呢?

可以通过数组公式实现:

=INDEX($A$2:$A$5,LARGE(ISNUMBER(FIND(B2,$A$2:$A$5))*(ROW($A$2:$A$5)-1),1),1)

在单元格C2中输入上述公式,按Ctrl Shift Enter组合键完成输入。然后,拖动单元格C2右下解至C5即可完成公式复制填充。

如下所示:

其中,公式中的

FIND(B2,$A$2:$A$5)

在单元格区域A2:A5的每个单元格中查找单元格B2中的值在该单元格中出现的位置,没有找到返回#VALUE!,找到则返回位置值,本例中的结果为:

{#VALUE!; #VALUE!; #VALUE!;3}

ISNUMBER函数将上面得到的数组转换为数组:

{FALSE; FALSE; FALSE;TRUE}

同样,公式中的

ROW($A$2:$A$5)-1

得到数组

{1;2;3;4}

将满足条件的excel数据分别复制到其他多个工作表中

以前也经常遇到类似问题,并且其解决技巧很有效率,因此在这里和大家分享。 如下所示的工作表,在主工作表MASTER中存放着从数据库下载的全部数据。现在,要根据列E中的数据将前12列的数据分别复制到其他工作表中,其中,列E中数据开头两位数字是61的单元格所在行前12列数据复制到工作表61中,开头数字是62的单元格所在行前

上面的两个数组相乘:

{FALSE; FALSE; FALSE;TRUE}*{1;2;3;4}

得到数组:

{ ; ; ;4}

上述数组传递给函数LARGE,获取第1个最大值为:

4

这样,公式变为:

INDEX($A$2:$A$5,4,1)

即获取单元格区域A2:A5中第4行第1列的值,即为单元格A5中的值。

如果嫌数组公式麻烦,可以使用VBA编写一个简单的用户自定义函数来解决。代码如下:

Function GetDataByName(rng AsRange, Data As Range)

GetDataByName = Data.Find(rng).Value

End Function

然后,在工作表中像使用Excel内置公式一样,在单元格C2中输入公式:

=GetDataByName(B2,$A$2:$A$5)

向下拖至单元格C5即可。如下所示。

excel怎么利用规划求解安排人员排班

如下所示,是一家小店的排班需求。从星期一到星期日,每天的时间段相同,即将每天的工作时间分成6段。 排班条件共5个,但第5个条件:“每个员工平均每天至少9个小时长,一周内工作时长为54个小时”,似乎存在矛盾,于是我将其修改为:“每个员工平均每天至少9个小时长,一周内工作时长至少为54个小时”。利用规划求解来求出排班

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:excel怎么根据人名提取相应的数据发布于2023-04-20 06:16:47
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: