PMC每日一练:第39周复盘:员工资料整理专题

B站影视 欧美电影 2025-09-28 16:15 1

摘要:大家好,我是古老师。今天我将发布2025年第39周PMC生产计划群的“每日一练”题目与答案。本次发布的资料包括每日练习题、对应的正确答案以及对相关考点的详细解析,旨在辅助大家的学习,并作为参考资料使用。

大家好,我是古老师。今天我将发布2025年第39周PMC生产计划群的“每日一练”题目与答案。本次发布的资料包括每日练习题、对应的正确答案以及对相关考点的详细解析,旨在辅助大家的学习,并作为参考资料使用。

本周的练习题目的方向为“员工资料整理”专题,包语法糖、聚合函数、自定义函数、数组变形、堆叠等知识点。

公式1:使用 HSTACK、LEFT 和 MID,提取首字为姓,第2到第10个字符为名。优点是简洁高效,但名字超过9个字会被截断,适用性有限。

公式2:通过 LEFT 取首字为姓,RIGHT(B,LEN(B)-1) 精确提取剩余所有字为名。逻辑准确,兼容各种姓名长度,无明显缺陷,是最推荐的标准方案。

公式3:先取首字 x,再用 SUBSTITUTE 将其从原名中删除得到“名”。思路巧妙,但若姓名中首字重复(如“林林”),会导致名字被全部清除,结果错误,不推荐使用。

公式4:根据姓名长度判断拆分方式——三字名时名取两字,否则名只取最后一个字。适合特定场景(如提取末字称呼),但对多字姓名处理不合理,通用性差。

公式5:利用 REDUCE 循环拼接每个姓名的姓和名,再用 WRAPROWS 整合成两列表格。结构复杂但兼容性强,适合高级用户在特殊环境下使用。

公式1:利用正则表达式提取每个单词的首字母并大写拼接,思路清晰但依赖未普及的REGEXP函数

公式2:通过分割拼音、取首字母、拼接转大写,逻辑正确且使用标准函数,简洁高效,是推荐方案。

公式3:用SCAN函数实现本应由MAP完成的逐项处理,虽结果正确但逻辑不当,不建议使用。

公式4:从中文姓名直接查表转换为首字母,无需预先生成拼音列,直接从中文姓名生成首字母。

MAP 逐行处理,LAMBDA 定义逻辑,COUNTIF 实现动态去重计数从拼音列(E列)提取首字母生成用户名,自动处理重名。TEXTSPLIT 拆分拼音,取每个词首字母并拼接,转为小写;再用 COUNTIF统计当前姓名在已处理行中的出现次数,决定是否加序号。

公式1:通过MID提取身份证中8位日期数字,再用TEXT格式化为“年月日”文本,通过减负转换为有效日期。

公式2:使用MAP逐个处理身份证号,同样用TEXT生成带汉字的日期文本,通过减负转换为有效日期。

公式3:利用MID分别提取年、月、日,再通过DATE函数组合成标准日期,输出日期序列值。

MAP(array, lambda):对数组中每个元素执行自定义操作,返回新数组。

例:MAP(A2:A10, LAMBDA(x, x*2)) 将每个数乘2。

SCAN([init], array, lambda):遍历数组并累积结果,返回每步结果组成的数组。例:SCAN(0, A2:A4, LAMBDA(a,b,a+b)) 返回累加过程。

REDUCE([init], array, lambda):遍历数组并累积一个最终值。例:REDUCE("", A2:A4, LAMBDA(x,y,VSTACK(x,y))) 垂直堆叠所有值。

LAMBDA(x, y, ...):创建自定义函数,可在 MAP、SCAN 等中使用。例:LAMBDA(a,b,a&b) 表示连接两个值。

LEFT(text, [num]):从文本左边提取指定数量字符。例:LEFT("abc",1) → "a"。

RIGHT(text, [num]):从右边提取字符。例:RIGHT("abc",2) → "bc"。

MID(text, start, num):从中间指定位置提取字符。例:MID("abc",2,1) → "b"。

LEN(text):返回文本字符长度。例:LEN("abc") → 3。

CONCAT(array):将数组或范围中的文本连接成一个字符串。例:CONCAT({"a","b","c"}) → "abc"。

TEXTSPLIT(text, delimiter):按分隔符拆分文本为数组。例:TEXTSPLIT("a b c"," ") → {"a";"b";"c"}。

UPPER(text) / LOWER(text):将文本转为大写或小写。例:UPPER("abc") → "ABC"。

COUNTIF(range, criteria):统计满足条件的单元格数量。常用于去重:COUNTIF($A$2:A2, A2) 统计当前值在历史行中出现次数。

VLOOKUP(value, array, col, 0):精确查找值并返回对应列数据。例:查汉字对应拼音首字母。

IF(condition, true_val, false_val):条件判断。例:IF(C>1, C-1, "") 控制是否添加序号。

LET(name, value, calculation):定义变量,提升公式可读性和性能。例:LET(x,A1, y,B1, x+y)。

HSTACK(array1, array2) :水平拼接多个数组(变宽)。例:将姓和名合并为两列。

VSTACK(array1, array2):垂直拼接数组(变长)。例:合并多行数据。

WRAPROWS(vector, cols):将一维数组按每 n 个元素换行,生成多列。例:将长列转为表格。

DROP(array, rows, [cols]):去除数组的前几行/列。常用于去除 REDUCE 的初始空值。

本周围绕员工信息处理,系统学习了现代Excel的动态数组函数。核心是利用MAP、LAMBDA等实现批量自动化操作,结合TEXTSPLIT、MID等文本函数精准提取数据,通过COUNTIF解决重名去重问题,最终用DATE等函数规范数据类型。整体体现了从原始数据到结构化信息的完整清洗与转换逻辑,掌握后可高效处理万人级人事表。

来源:古哥计划一点号

相关推荐