excel 在线练习(学习Excel没有练习素材?一文带你搞定!)

excel 在线练习(学习Excel没有练习素材?一文带你搞定!)
学习Excel没有练习素材?一文带你搞定!

Cover

对于学习Excel的朋友而言,练习素材是个难点,本文着眼于解决这个问题,今天先练习生成随机姓名。

本文介绍了两种方法,对应不同的Excel版本。如下图,在F2单元格输入数量,G列生成对应数量的姓名。

问题描述

一、准备工作

要制作随机生成任意数量的姓名,需要先在搜索引擎上搜集百家姓和汉语常用字,按照如下排列。

准备工作

常规情况下,我们的姓名有2个字的,也有3个、4个字的,在第2列的汉字中间,要插入适量的空格,这样就既能生成2个字的姓名,也能生成3个字、4个字的姓名(复姓姓名四个字)。

二、步骤分解(新版本Excel)

1、我这里准备的源有4024行,借助RANDBETWEEN函数,生成1到4024的随机数,在三列汉字中取数,按列执行计算,使用BYCOL函数。

=BYCOL(  $B$2:$D$4025,   LAMBDA(   x,     INDEX(x,RANDBETWEEN(1,4024))  ))

2、这样得出的是一个1行3列的数组,外层嵌套CONCAT函数,转换为单个字符串。

=CONCAT(BYCOL($B$2:$D$4025,LAMBDA(x,INDEX(x,RANDBETWEEN(1,4024)))))

3、为了让以上计算,执行到4024行,外层再嵌套MAP函数。

=MAP(   $A$2:$A$4025,   LAMBDA(     m,     CONCAT(BYCOL($B$2:$D$4025,LAMBDA(x,INDEX(x,RANDBETWEEN(1,4024)))))  ))

这里MAP函数的作用是控制计算的次数,其遍历的对象并不参与到实际的计算中。这一步的结果,返回4024条随机姓名,再嵌套UNIQUE函数去重。

=UNIQUE(   MAP($A$2:$A$4025,LAMBDA(m,CONCAT(BYCOL($B$2:$D$4025,LAMBDA(x,INDEX(x,RANDBETWEEN(1,4024))))))))

4、去重之后的随机姓名,外层再嵌套TAKE函数即可。

=TAKE(   UNIQUE(MAP($A$2:$A$4025,LAMBDA(m,CONCAT(BYCOL($B$2:$D$4025,LAMBDA(x,INDEX(x,RANDBETWEEN(1,4024)))))))),   $F$2)

三、老版Excel中的操作

1、如果你的Excel版本比较老,可以将E列用作辅助列,E2单元格输入公式:

=INDEX($B$2:$B$4025,RANDBETWEEN(1,4024))& //生成随机姓氏  INDEX($C$2:$C$4025,RANDBETWEEN(1,4024))& //生成姓名中间的字   INDEX($D$2:$D$4025,RANDBETWEEN(1,4024)) //生成姓名最后的字 

然后双击向下填充,就能生成4024条随机姓名。

2、使用OFFSET来取数,高度设置为F2。

=OFFSET($E$2,0,0,$F$2)

公式表示:以E2单元格为基准,不作行列偏移(第二、三参数设置为0),向下取数的高度为F2单元格输入的数字。

excel 在线练习(学习Excel没有练习素材?一文带你搞定!)

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有