收藏 分销(赏)

《POWERBI数据处理和分析》课件 第5章 使用POWER QUERY之M语言进行自动化数据处理.pdf

上传人:曲**** 文档编号:239352 上传时间:2023-04-23 格式:PDF 页数:78 大小:2.41MB
下载 相关 举报
《POWERBI数据处理和分析》课件 第5章 使用POWER QUERY之M语言进行自动化数据处理.pdf_第1页
第1页 / 共78页
《POWERBI数据处理和分析》课件 第5章 使用POWER QUERY之M语言进行自动化数据处理.pdf_第2页
第2页 / 共78页
《POWERBI数据处理和分析》课件 第5章 使用POWER QUERY之M语言进行自动化数据处理.pdf_第3页
第3页 / 共78页
《POWERBI数据处理和分析》课件 第5章 使用POWER QUERY之M语言进行自动化数据处理.pdf_第4页
第4页 / 共78页
《POWERBI数据处理和分析》课件 第5章 使用POWER QUERY之M语言进行自动化数据处理.pdf_第5页
第5页 / 共78页
点击查看更多>>
资源描述

1、第5早使用POWER QUERY之M语言进 行数据处理章节内容 5.1数据类型之间互相转换基础 5.2表格数据的行列处理转换基础 5.3常见数据源数据的获取 5.4文本数据的处理 5.5数值数据的处理 5.6日期时间数据的处理 5.7JSON数据的处理 5.8数据处理综合案例一一半结构化EXCEL数据的处理 5.9数据处理过程中M语言的灵活应用2第5章使用POWER QUERY之M语言进行数 据处理M语言可以解决通过界面操作方式无法解决的问题(1)使用M语言编程,可以清晰的理解数据处理过程中每一步的 数据表示形式,以及各个步骤之间数据表示形式是如何转换的,因此可以顺利的设计数据处理过程中从源数

2、据形式到最终目的数 据形式的转换途径;(2)本来人力无法胜任的很多需要重复进行的繁琐工作,可以 由计算机自动化的来进行求解。35.1.1 原子类型数据之间的类型转换 L文本和数值数据之间的转换 可以使用Number.ToText()函数将数值数据转换为文本数据,该函数的语法形式如下:Number.ToText(number as nu ab e number,optional format as nullable text,optional culture as nullable text)as nu ab e text 彳列:Number.ToText(123)得至U文本“123”,而Num

3、ber.ToText(123;e)得至U文本 123.000000e+000H,o亘以使用Number.FromText。函数将文本数据转换为数值数据,该函数的语法形式如 下:Number.FromText(text as nullable text,optional culture as nullable text)as nullable number例:Number.FromText(“567”)得至U数值567。45.1.1原子类型数据之间的类型转换 2.将其他类型数据转换为文本类型的数据 可以使用Text.From。函数将number、date、time、datetime、dateti

4、mezone、logical、duration或binary类型的数据转换为文本类 型,该函数的语法形式如下:Text.From(value as any,optional culture as nullable text)as nullable text例:Text.From将数值数据1转换为文本“1,Text.From(true)将 逻辄值true转提为文本“true”55.1.1 原子类型数据之间的类型转换 3.将其他类型数据转换为数值类型的数据 可以使用Number.From()函数将text、date、time、datetime、datetimezone、logical、durati

5、on类型的数据转换为文本类型,该 函数的语法形式如下:Number.From(value as any,optional culture as nullable text)as nullable number 彳列:Number.From(#date(2019,10,28)得至U43766,Number.From(true)将逻辑值true转换为数值1。65.1.1 原子类型数据之间的类型转换 4.将文本类型数据转换为日期类型 可以使用Date.FromText。函数将符合某种文化的日期格式的文本 转换为日期类型的数据,该函数的语法形式如下:Date.FromText(text as null

6、able text,optional culture as nullable text)as nullable date例:口310.尸01T0乂1:(“2019-10-28)得至1代表2019年10月 28 日的date 类型数据。75.1.2表格和记录数据之间互相转换1.将记录数据转换为表格可以使用Record.ToTable()或Table.FromRecords()函数将记录数据转 换为表格。Table.FromRecords。函数的语法形式如下:Table.FromRecords(records as list,optional columns as any,optional mis

7、singField as nullable number)as table85.1.2表格和记录数据之间互相转换【例5;】通过手工构造记录数据,转换为表格,效果如图所示。let/通过手工构造的列表创建一个表格保存到tl中tl=Table.FromRecords(Name=Name,Value=Zhou,Name=Age,Value=25,Name=Country,Value=CHINA),res=tl inres95.1.2表格和记录数据之间互相转换 Record.ToTable()函数的语法形式如下:Record.ToTabIe(record as record)as table 该函数将一

8、个记录对象转换为表格,表格只有两列,分别代表名 称和值,而记录对象中的每个名称-值对会作为转换后的表格中的 一行。105.1.2表格和记录数据之间互相转换 2.表格数据转换为记录 可以使用Table.ToRecords。和Record.FromTable()函数完成将表格数据转换为记 亲的彳壬务。Table.ToRecords()函数的语法形式如下:Table.ToRecords(table as table)as list该函数将作为参数的表格转换为一个记录的列表返回,表格的列名和每一行 的值分别构成记录列表中每个记录的名称-值对。Record.FromTable()函数的语法形式如下:Re

9、cord.FromTable(table as table)as recordii5.1,3表格和列表数据之间互相转换 1.将列表数据转换为表格 可以使用Table.FromRows()函数按照行方向构造表格,该函数语法 形式为:Table.FromRows(rows as list,optional columns as any)as table参数rows是代表每行数据的列表,一般而言该列表的每个元素也是一个 列表,代表一行数据,所以每个元素列表的长度应该是一样的;可选的参数columns用来给定每一列的名称,因此是一个文本列表,返回 值是得到的表格125.1.3表格和列表数据之间互相转换

10、【例5-2】假设原有代表表格数据的列表的列表1810K张强。男,18102李云女,“18103,赵飞J男,则使用如 下代码替换【例5-1】中的tl定义可以得到如图所示的表格。tl=Table.FromRows(“1810r J张强”男,”18102”李云”女“18103,“赵飞,广男”,“学号,曾姓名,”性别”)135.1.3表格和列表数据之间互相转换可以使用Table.FromColumns。函数按照列方向构造表格,该函数 语法形式为:Table.FromColumns(lists as list,optional columns as any)as table 参数lists是代表每列数据

11、的列表的列表,每个子列表代表一列,通常情况 下每个子列表的长度应该一致,否则会导致有些表格单元数据为空值;可选的参数columns用来给定每一列的名称,因此是一个文本列表。返回值是得到的表格。145.1.3表格和列表数据之间互相转换【例5-3】假设原有代表表格数据的列表的列表18101718102/18103,张强李云赵飞,男,女,男6则使用如下乜定义代码可以得到如图所示的表 feo tl=TableTromColumns(,1810r,18102,7,18103,张强李云1赵飞”),”男赴女,”男,“学号姓名。”性别”)LI ABC与县1 L 123子节0愣姓名愣性别a1 18101张强男2

12、 18102李云女3 18103赵飞男155.1.3表格和列表数据之间互相转换 2.将表格数据转换为列表 将表格数据转换为列表时,可以有选择按行方向或者列方向进行转换。可以使用Table.ToList。函数将每一行的数组按照某种合并方式组合后生 成二个数据,然后将整个表格的所有行转换为一个列表,该函数语法 形式为:Table.ToList(table as table,optional combiner as nullable function)as list参数table是等待转换的表格;可选的参数combiner表示合并每行数组所使用的合并函数。返回值是一个列表,列表的每个元素对应表格中一

13、行数据使用合并函数合并后的 值。165.1.3表格和列表数据之间互相转换【例5-4】如例5-2中所示的表格tl,将每行数据都转换为文本类 型,使用文本合并函数以逗号为分隔符合并成一个文本,最终构 成一个如图所示的文未列表。t2=Table.ToList(tl,Combiner.CombineTextByDelimiter(,),列表1 18101,张强,男2 18102,李云,女3 18103,赵飞,男175.1.3表格和列表数据之间互相转换可以使用Table.ToColumns。函数将表格按照列方向转换为列表,表 格的每一列被转换为一个列表,而整个表格被转换为列表的列表。例如例5-2中所示的

14、表格tl可以使用如下代码按照列方向转换,转 换后效果如图所示。t2=Table.ToColumns(tl)列表1 Kist2 List3 List185.2.1 表格行列转换在很多场合下,需要进行表格的行列转换,例如进行矩阵计算或 者对外善读入的数据进行整理日寸,可以通过Table.Transpose(丽数 完成表格的行列互换任务,该函数的语法形式为:Table.Transpose(table as table,optional columns as any)as table参数t a ble是希望处理的表格;返回值是行列转置以后的表格。195.2.1表格行列转换两乳尸皆膜卷站f蜉格使用Tab

15、le.Transpose。函数完成行列转置,效|翻,123 Name 日 微 Value 臼1 Name Zhou|et 2 Age 25/通过手工构造的列表创建一个表格保存到tl中3 COUntrV-岬 一tl=Table.FromRecords(Name=Name,Value=Zhou,Name=Age,Value=25,Name=Country,Value=CHINA),进行行列转置,结果保存到t2中t2=Table.Transpose(tl),res=t2n1123 Columnl 二Name123 Column2 目Age123 Column3 目Country2Zhou25CHIN

16、Ares205.2.2提升表格数据第一行为列标题很多时候从外部导入Power BI的数据构成表格后,第一行不是数 据本身,而是代表列标题,此时可以通过Table.PromoteHeaders。函数将表格的第一行数据提升为列标题。该函数的语法形式为:Table.PromoteHeaders(table as table,optional options as nullable record)as table 参数table是等待处理的表格,通常要求第一行数据是文本或数值类型的,否则的话,需要给出第二个参数;可选的参数。ptions是一个记录,用来说明是否转换第一行的所有标量值 为列标题,以及转换

17、时使用的文化背景格式;返回值是转换得到的表格。215.2.3表格中列的数据类型的转换可以使用Table.TransformColiimnTypes()在需要是将表格中某列数 据的类型转换为期望的类型,当然前提要求是这种转换是可行的。该函数的语法形式是:Table.TransformColumnTypes(table as table,typeTransformations as list,optional culture as nullable text)as table 参数table是等待处理的表格;参数ransformations是一个用来说明需要转换类型的列及相应的数据类型 的列表;返

18、回值是转换列类型的表格。225.2,3表格中列的数据类型的转换例如上图中的表格t3,导入数据后年龄列暂时被识别为文本类型,可以使用Table.TransformColumnTypes()将其设置为整数类型,代 码如下,转换后得到的表格如下图5所示。里 123 Name 123 Age 回徵 Country 国1 Zhou 25 CHINA t2=Table.TransformColumnTypes(t3,Age,lnt32.Type)鱼123 Name 曰色Age 目微Country 目1 Zhou 25 CHINA235.2.4将表格中值为记录类型的数据进行扩展可以使用Table.Expan

19、dRecordColumn()函数将单元值为记录类型的数据 进行扩展,该函数的语法形式如下:Table.ExpandRecordColumn(table as table,column as text,fieldNames as list,optional newColumnNames as nullable list)as table 参数table是等待处理的表格;参数column是待扩展的列名,该列的每个元素都是一个记录数据;参数fieldNames是一个列表,列表的元素对应等待扩展的记录类型中的名称,作为需要扩展到列;参数newColumnNames给出扩展生成的新列的列名。当扩展表格

20、时,记录数据 含生成新的列入而非记录数据的原始表格中的数据会根据当前行中记录扩展的 薪行复制到每个新行中;返回值是扩展后的表格。245.2.5将表格中值为列表类型的数据进行扩展可以使用Table.ExpandListColumn()函数将单元值为列表类型的数 据进行扩展,该函数的语法形式如下:Table.ExpandListColumn(table as table,column as text)as table 参数table是等待处理的表格;参数column是待扩展的列名,该列的每个元素都是一个列表类型的数据,当扩展表格时,列表数据会生成新的列,而非列表数据的原始表格中的 数据会根据当前行

21、中记录扩展的新行复制到每个新行中;返回值是扩展后的表格。25526删除表格中的列当表格中的某列不再需要时,可是使用Table.RemoveColumns。函 数删除该列,函数的语法形式是:Table.RemoveColumns(table as table,columns as any,optional missingField as nullable number)as table 参数table是等待处理的表格;参数columns是待删除的列名;返回值是删除指定列后的表格。265.2.7拆分表格中的列可以使用Table.SptColumn()函数将表格中的指定列按照给定的拆 分函数拆分为若

22、干个新列。该函数的语法形式为:Table.SplitColumn(table as table,sourceColumn as text,splitter as function,optional columnNamesOrNumber as any,optional default as any,optional extraColumns as any)as table 参数table是等待拆分的表格;参数sourceColumn是等待拆分的列名;参数splitter是拆分指定列数据的拆分函数;返回值是拆分列后的表格。27528获取表格中的列名在处理过程中,可以获取表格各列的列名,以方便后续

23、的数据处 JIo可以使用Table.ColumnNames(j函数获取作为参数的表格的各 列列名,组织为一个文本列表返回,该函数的语法形式如下:Table.ColumnNames(table as table)as list285.3.1 文本数据的获取可以使用Csv.Document。从文本文件或CSV文件中获取文本数据,该函 数的语法形式如下:Csv.Document(source as any,optional columns as any,optional delimiter as any,optional extraValues as nullable number,optional

24、 encoding as nullable number)as table 参数source表示数据源文件名称;参数columns给定想要获取的列的信息,可以是列的数量或者列名等信息;参数delimiter给定同一行数据之间的分隔符号,默认分隔符号是逗号;参数extra Values给出额外值类型;参数encoding给出文本文件的字符集编码。除了第一个参数外的其他信息可以组织成一个记录类型的参数。函数将获取的 数据以表格形式返回。29X5.3.1文本数据的获取aqri.txt-记事本地区京津北西蒙宁林龙海 蝴地北天河山内辽吉黑上Q)阡 9 0 3 7 2 3 t(q 08332844 隈秒

25、953185641 楝抑 43636351111H6 4 4 9 3 18 9 2 6 3 0 4 127463851 323132379总产量(万吨)624465165941455053626631669452238003单位面积产量(公斤/公顷)古江 let source=Csv.Document(File.Contents(D:RESOU RCESagri.txt),4,ExtraValues.Ignore,93 6),tl=Table.PromoteHeaders(source,PromoteAIIScalars=true),5 内蒙古 6833 3664 53626 辽宁 3527

26、2339 66317 吉林 5682 3803 66948 黑龙江 14438 7541 52239 上海 114 91 800310 江苏 5406 3729 68985.3.2 EXCEL数据的获取 可以使用File.Contents。和Excel.Workbook()配合从EXCEL文件中获 取文本妆据,File.Contents。函数的语法形式如下:File.Contents(path as text,optional options as nullable record)as binary参数path表示带获取的数据的文件路径,将文件内容以二进制形式读取 后返回。315.3.2 EX

27、CEL数据的获取 Excel.Workbook。函数的语法形式如下:Excel.Workbook(workbook as binary,optional useHeaders as nullable logical,optional delayTypes as nullable logical)as table 参数workbook表示数据源EXCEL文件内容的二进制映像;参数useHeaders说明是否使用标题行;,参数delayTypes表示是否延迟类型指定。函数的返回值是一个表格,EXCEL工作簿文件的每个工作表作为一个表格 中的行被识别。325.3.2 EXCEL数据的获取脑电宝 品机

28、板电 产手平充B C D E F G 销售量销售额2000 35000001200 38000003500 598000【例5-7】获取EXCEL文件中的产品销售数据67Sheetl(+)就绪囿凹-1-+100%C5-:I X fx,let source=Excel.Workbook(File.Contents(D:RESOURCESsales.xlsx),null,true),Sheetl_Sheet=source ltem=Sheetl,Kind=Sheet Data,tl=Table.PromoteHeaders(Sheetl_Sheet,PromoteAIIScalars=true),

29、t2=Table.TransformColumnTypes(tL“产品)type text,”销售量,lnt64.Type),“销售额:lnt64.Type)in t2口一 aBc产品内销售量 0123销售额 01手机200035000002平板电脑120038000003充电宝3500598000335.3.3网页数据的获取 可以使用File.Contents。和Web.Page()函数配合从网页文档中获取 文本数据,Web.Page。函数的语法形式如下:Web.Page(html as any)as table函数唯一的参数表示数据源网页文件的HTML源代码。函数的返回值是一 个表格,网页

30、文档本身以及网页文档中所包含的表格属性及数据被识别 分别作为结果表格的一行。当需要后续处理时,通过指名提取该函数返 回结果表格中的哪一行来获取相应的实际表格数据。345.3.3网页数据的获取【例5-8】获取网页文档中包含的美元对一些国家货币的汇率信息。let source=Web.Page(File.Contents(file:/D:RESOU RCESpart3.html),DataO=source0 Data,tl=Table.TransformColumnTypes(DataO,US Dollar,type text,1.00 USD,type number,inv.1.00 USD,t

31、ype number)in tl文呻 青舌(V)a A)IM(T)IWH)Rates Table Converter 1 US Dollar Rates tableTop 10 Jun 19.2018 01 53 UTCUS Dolla rBrit ish Poundlia r Ca na dia n Dolla r Singa pore Dolla r Swiss Fra nc Ma la ysia n Rjiggit Ja pa nese Ye1.00 L SD ia v.1.00 USD 0.859210 1.163860 0 753671 1 326838 68 071943 0 01

32、46901348817 0.7413911 320290 0757409 1 350993 0 740197 0.992793 1.007260 3 997926 0250130 109.9998060.009091Chinec Yua a Rc nnunbi6 445766 0.155141Alpha bet ic a l order Jun 19.2018 01:53 UTCUS Dolla r Argent ine Peso Aust ra lia n Dolla r Ba lua ini Dinu Bot swa na Pulaa n Rea l a n Dolla i1.00 USD

33、 27614641 1 38817 0 376000 103218973748245 I 350993 16$(M69 1 320290636 7Q4898Chinese Yua n Renmt nbi6 445?68Colombia n Peso Croa t ia n Kuna Czec h Koruc a Da nish Krot eHons Kona Dolla rinv.1.00 USD 0.036213 0741391 2 659574 0.096881 0266792 0 740)97 0.595072 0.757409 0001571 0.1551412923.970367 0

34、.0003426 342339 0.15767122.157043 0 0451326403041 0 1561760 859210 I 1638607.849140 0.127402A是 US Dollar.|12 1.00 USD 12 inv.1.00 USD Q1Euro0.859211.163862British Pound0.7536711.3268383Indian Rupee68.0719430.014694Australian Dollar1.3488170.7413915Canadian Dollar1.320290.7574096Singapore Dollar1.350

35、9930.7401977Swiss Franc0.9927931.007268Malaysian Ringgit3.9979260.250139Japanese Yen109.9998060.00909110Chinese Yuan Renminbi6.4457680.1551415.4.1文本数据的提取 1.提取文本中指定位置的一个字符 可以使用Text.At()实现提取文本中指定位置的一个字符,该函数的 语法形式如下:Text.At(text as nullable text,index as number)as nullable text 参数t ext是原文本;参数index是从0开始

36、的下标位置;返回值是单个字符构成的文本数据。例如Text.At(”china,2)返回“l,Text.At(中国南京,2)返回“南”。365.4.1文本数据的提取 2.从文本开始位置向后提取指定数量的字符构成子文本可以使用Text.Start()实现从文本开始位置向后提取指定数量的字 符构成子文本,该函数的语法形式如下:Text.Start(text as nullable text,count as number)as nullable text参数text是原文本;参数count是提取的字符数量。例如Text.Start(“中国南京12)返回“中国”375.4.1文本数据的提取 3.从文本

37、结尾位置向前提取指定数量的字符构成子文本 可以使用Text.End()实现3.从文本结尾位置向前提取指定数量的 字符构成子文本,该函数的语法形式如下:Text.End(text as nullable text,count as number)as nullable text text参数是原文本;参数count是提取的字符数量。例如Text.End(“中国南京2)返回“南京”。385.4.1文本数据的提取 4.从文本中间某个位置开始提取指定数量的字符构成子文本 可以使用Text.Middle()实现从文本中间某个位置开始提取指定数量的 字符构成子文本,该函数的语法形式如下:Text.Midd

38、le(text as nullable text,start as number,optional count as nullable number)as nullable text 参数text是原文本;参数start提取的起始位置,通过从。开始的下标表示;可选的参数count是提取的字符数量,如果缺省的话表示一直提取到文本结束。例如Text.Middled中国江苏南京二2,2)返回“江苏”,而Text.Middle(“中 国江苏南京二2)则返回“江苏南京”。395.4.2文本拆分可以假里年匹汨用油数将子文本通过拆分的方式从原文本中提取出来,该函数的语法形式如下:Text.Split(tex

39、t as text,separator as text)as list 参数text是待拆分的原文本;参数separator是作为分隔符号的文本;返回值是拆分出来的子文本构成的列表。“867025;80008888。405.4.3文本合并丁6乂七(2017113m0)函_ 篇缴施笆溜福数完 数的语法形式如下:并成二段II的猱格I2以使用处理狂如果需 脑麻文皤Text.Combine(texts as list,optional separator as nullable text)as text参数texts是待合并的多个文本构成的列表;量,通过分隔待节 看子文本无分隔的口口例如使用 Text

40、.CombineX86:025 lebir-thslzr=if Texli.Leng-th(my id)=15 izhen/1 5 位老身份证号,需要力口 L9育U 缀IS&T exlz.Middle(my d 62)&-&T exlz.Middle(my id 8 2)&-&T exlz.Middle(my id 102)elsei-F T exlz.Lenglz h(my id)=18 Izhen/ILS 彳立 Wf 身(11 白勺T ex.Middle(myid 64)&-&T ext:.Middle(my id,10 2)&-&T exlz.MiddleC my id,12 2)els

41、e/既不是215位也不是二8位,信息、有错,生日用“:1900-01-。:1”彳弋替,1900-01-01w,birlzhday=Da-te.F romTex(birt hs-t r)in bi n-t hday,ge_t_gend re=(my id a s text)a s tzextz=let-Flag=i-F Tex-t.Leng-t h(my id)=15-then/老身份证号性另“符号是最后位T ex-t.A t:(my id,14)elsei-F T exlz.Lenglz h(my id)=18-then/新i正号-另 U 将号是(至U 第 f立T ex-t.A t(my id

42、 T6)else/信息有错,用特殊值-1代表num=Number.Mod(Number*.F romT ext(Flag),2)/车专 彳直/根据奇偶性判断,错误信息用ERROR表示res=i-F num=l-then 男性 else i-F num=0-then 女性else ERROR n nes,=Excel.Workbook(Fle.Corrtents(D:RESOURCESIDCA RDS.xlsx)null-true)#文本查找(身份证)_Sheet”=源工lzem=文本查找(身份证)”,Kind=Sheet”Da-ta 更改的 型=T able.T ran s-Fo rmColu

43、mn Types(#文本杳!(身名iTF)_Sheelz ,Columnl-type-text:_,身份证号 Izype 七。乂七 籍贯type-tex-tz)ablel=Table.A ddUoZLumn(的型:L”上也区石马 eac h Text 5七a七(身分t正号 6)tableZ=Table.A ddColumn(-tablel H each get_birt:hday(身份iiE号)able3=Table.A ddColumn(七3匕182,十生另U each ge_gendre(身正号)-text)inable3455.5.1数值处理常用函数 1.数值的舍入运算,鼻舒军用Numb

44、er.Round()函数实现实数的舍入运算,该函数的语法形Number.Round(number as nullable number,optional digits as nullable number,optional roundingMode as nullable number)as nullable number参数number是需要舍入的实数;儒裴畛参数是舍入发生的小数点位置digits,如果省略的话number被舍入到最近曹史参|聋旦金入的方向roundingMode%当其 馥笑鹦阐器D。牌为 RoundingMode.U 15向潘I醯回廉雕髓瞽舍入后的数值,如果传入的第一个参数

45、number的46551数值处理常用函数例 Number.Round(l.23)的值为 1,Number.Round(1.53)的值为 2 Number.Round(-l,53)的值为一2 Number.Round(1.27,l)的值为 1.3 Number.Round(l.675,2,RoundingMode.Down)的值为 1.67 Number.Round(L675,2,RoundingMode,Up)的值为 1.68 NumberRound(1673,2,RoundingModeDown)和1!110r口011门1(1.673,2#011门山11/10.1)的值均为1.67 Numb

46、er.Round(1.676,2,RoundingMode.Down)5pNumber.Round(l,676,2,RoundingMode,Up)的值均为L68。475.5.1数值处理常用函数 2,乘幕和对数运算 可以使用Number.Power。函数实现乘幕运算,该函数的语法形式 如下:Number.Power(number as nullable number,power as nullable number)as nullable number函数的返回值是number的power次方,如果两个参数中有一个为 空值,则函数返回空值。例如Number.Power(10,3)返回1000,

47、Number.Power(l;5,2)返回2.25。注意求自然常数e的乘幕可以使用 Number.Exp()函数。48551数值处理常用函数 可以使用Number.Log()函数实现求对数运算,该函数的语法形 式如下:Number.Log(number as nullable number;optional base as nullable number)as nullable number 函数的返回值是以base为底的number的对数,如果第二个参数缺 省,则缺省值为自然常数e,如果第一个参数number的值为空值,则函数返回空值。例如Number.Log(100,10)返回2,Numb

48、er.Log(256,2)返回8,Number.Log(2.718)的值为0.999896315728952。也可以使用 Number.Ln()求自知对数,使用Number.LoglO()求10为底的对数。495.5.2数值处理案例一一计算销售业绩奖金在“员工销售数据.xlsx文件中的“员工数据”表中提供了某企业 员工的个人情况和销售情况,现在需要计算每个员工的基础工资、销售奖金和总收入,并根据如下规则产生三个新列,基础工资列 根据下图的规则由文化程度列生成,奖金列根据下图的规则由销 售业绩列生成,实际收入列根据“基础工资+奖金”的规则生成。文化程度 基祜工资博士5200硕士4700楣4100

49、大专3200销售业绩段奖金比例=5000010%505.5.2数值处理案例一一计算销售业绩奖金 解米思路:可以为整础工资的计算和销售奖金的计算各设计一个函数 来实现。具体实现代码:let basesalary=(diploma as text)=let salary=if diploma=“博士”then 5200 else if diploma=”硕士”then 4700 else if diploma=”本科”then 4100 else 3200 insalary,515.5.2数值处理案例一一计算销售业绩奖金 compute_bonus=(sales as number)=let bo

50、nus=if sales=40000 and salesstart,each _ Z1 AU lm_L+let,modelfile=Excel.Workbook(modelfilebinaryz null,true),model_Sheetl_Sheet=modelfile ltem=Sheetl,Kind=Sheet Data,model_tl=Table.TransformColumnTypes(model_Sheetl_Sheet,Columnl,type text,Column?,type text,Column3,type text,Column4,type text,Columns

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服