Excel 返回关键性能指标KPI属性:CUBEKPIMEMBER函数

若需要返回关键性能指标KPI属性,并在单元格中显示KPI名称,可使用CUBEKPIMEMBER函数。

CUBEKPIMEMBER函数的语法为:=CUBEKPIMEMBER(connection,kpi_name,kpi_property,caption),各参数的含义介绍如下。

connection:表示到多维数据集的连接的名称的文本字符串。

kpi_name:多维数据集中KPI名称的文本字符串。

caption:显示在单元格中的可选文本字符串。

kpi_property:返回的KPI组件,可以为下列类型的值之一。

※ 值为1时,枚举常量为“KPIValue”,表示实际值。

※ 值为2时,枚举常量为“KPIGoal”,表示目标值。

※ 值为3时,枚举常量为“KPIStatus”,表示KPI在特定时刻的状态。

※ 值为4时,枚举常量为“KPITrend”,表示走向值的度量。

※ 值为5时,枚举常量为“KPIWeight”,表示分配给KPI的相对权重。

※ 值为6时,枚举常量为“KPICurrentTimeMember”,表示KPI的临时根据内容。

Excel 与外部数据源连接

与外部数据源连接,从工作表运行查询,然后SQL. REQUEST将查询结果以数组的形式返回,而无需进行宏编程。如果没有此函数,则必须安装Microsoft Excel ODBC加载项程序“XLODBC.XLA”。

SQL.REQUEST函数的语法为:=SQL.REQUEST (connection_string,output_ref,driver_prompt,query_text,col_names_logical),各参数的含义介绍如下。

Connection_string参数

该参数用来提供信息,如数据源名称、用户ID和密码等。这些信息对于连接数据源的驱动程序是必需的,同时必须满足驱动程序的格式要求。输入该参数时需要注意以下情况。

※ 试图连接到数据源之前,必须定义在connection_string中使用的数据源名称DSN。

※ 可以数组或字符串的形式输入connection_string。但若是connection_string超过250个字符,就必须以数组的形式输入。

※ 如果函数SQL.REQUEST不能用connection_string访问数据源,将返回错误值#N/A。

Output_ref参数

该参数用于存放完整的连接字符串的单元格的引用。

※ 当需要函数SQL.REQUEST返回完整的连接字符串时,可以使用output_ref,此种情况下,必须在宏表中输入SQL. REQUEST函数。

※ 如果省略output_ref,函数SQL.REQUEST不能返回完整的连接字符串。

Driver_prompt参数

该参数用于指定驱动程序对话框何时显示以及何种选项可用。该参数有以下几个数值。

※ 参数值为1时,表示一直显示驱动程序对话框。

※ 参数值为2时,表示只有在连接字符串和数据源说明所提供的信息不足以完成连接时,才显示驱动程序对话框。

※ 参数值为3时,表示只有在连接字符串和数据源说明所提供的信息不足以完成连接时,才显示驱动程序对话框。如果未指明对话框选项是必需的,这些选项变灰,不能使用。

※ 参数值为4时,表示不显示对话框。如果连接不成功,则返回错误值。

query_text参数

该参数需要在数据源中执行的SQL语句,使用此参数时需要注意以下问题。

※ 如果SQL.REQUEST函数不能在指定数据源中执行query_text,则返回错误值#N/A。

※ 可将引用连接到query_text上来更新查询。

※ Microsoft Excel将字符串长度限制在255个字符内。如果query_text超过此长度,请在垂直单元格区域中输入查询并将整个区域作为query_text。所有单元格的值连接在一起形成完整的SQL语句。

col_names_logical参数

该参数指示是否将列名作为结果的第一行返回。

如果要将列名作为结果的第一行返回,可将该参数设置为TRUE;若不需要将列名返回,则设置为FALSE;若省略column_names_logical,则SQL.REQUEST函数不返回列名。该参数的返回值有以下两种情况。

※ 如果此函数完成了它的所有操作,则返回查询结果数组或受查询影响的行数。

※ 如果SQL.REQUEST函数不能使用connection_string访问数据源,则返回错误值#N/A。

假设需要对名为DBASE4的dBASE数据库进行查询。若需要返回查询结果数组,其中第一行为列名,可输入公式:=SQL. REQUEST(“DSN=NWind;DBQ=c:\msquery;FIL=dBASE4″,c15,2,” Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100″, TRUE)。

Excel 返回已注册过的指定动态链接库:REGISTER.ID函数

REGISTER.ID函数可用于返回已注册过的指定动态链接库(DLL)。如果DLL还未进行注册,该函数对DLL或代码源进行注册,然后返回注册号。

REGISTER.ID函数的语法为:=REGISTER.ID(module_text,procedure,type_text),各参数的语法介绍如下。

※ module_text:为文本,用于指定Microsoft Excel for Windows中的DLL名称,该DLL包含函数。

※ procedure:为文本,用于指定Microsoft Excel for Windows中DLL内的函数名,还可以使用函数的序数值,该值来自模块定义文件(.DEF)中的EXPORTS语句,但序数值或者源ID号不能为文本形式。

※ type_text:为文本,用于指定返回值的数据类型以及DLL的所有参数的数据类型,Type_text的首字母指定返回值,如果函数或代码源已经注册过,则可省略该参数。

使用CALL函数

CALL函数属于外部函数,外部函数的功能是从Excel以外的程序中提取数据,或进行欧洲货币的换算。

CALL函数可用于调用Windows动态链接库或代码源,该函数分为语法1、语法2a和语法2b这3种用法。下面将分别介绍。

语法1

CALL函数语法1必须与REGISTER函数配合使用,CALL函数的语法为:= CALL(register_id,argument1, …),各参数的语法介绍如下。

※ 参数register_id:为以前执行REGISTER函数或REGISTER.ID函数返回的值。

※ 参数argument1:为要传递给过程的参数。

假设注册32位Windows中的GetTickCount函数,并以毫秒为单位返回Windows的运行时间,具体操作如下。

01 在单元格中输入公式=REGISTER(“Kernel32″,”GetTickCount”,”J”)。

02 假设REGISTER函数在单元格A5中,在宏注册GetTickCount函数之后,可用CALL函数返回已经运行的毫秒数即可,函数公式为:=CALL(A5)。

语法2a

在Microsoft Excel for Windows中使用CALL函数,即语法2a,函数公式为:= CALL(module_text,procedure, type_text,argument1, …),各参数的含义介绍如下。

※ module_text:带引号的文本,用于指定动态链接库(DLL)的名称,该链接库包含Windows中的过程。

※ procedure:用于指定Windows的DLL中的函数名称的文本,还可以使用由模块定义文件(.DEF)中的EXPORTS语句为函数提供的顺序值。

※ type_text:指定返回值的数据类型以及DLL或代码源的所有参数的数据类型的文本,Type_text的第一个字母指定返回值。

※ argument1,…:为要传递给过程的参数。

在工作表中,可以使用CALL公式(语法2a)调用GetTickCount函数,函数公式为:=CALL(“Kernel32″,”GetTickCount”,”J!”)。

其中参数type_text中的“!”表示强制Microsoft Excel在每次重新计算工作表时都要重新计算CALL函数,这样只要重新计算工作表,运行的时间值都将得到更新。

语法2b

在Microsoft Excel for Macintosh中使用CALL函数,即语法2b,函数公式为:=CALL (file_text,resource,type_text, argument1,…),各参数的语法介绍如下。

※ file_text:包含Macintosh中代码源的文件的名称。

※ resource:Macintosh中代码源的名称,也可以使用资源ID号,资源ID号不可以为文本形式。

※ type_text:指定返回值的数据类型以及DLL或代码源的所有参数的数据类型的文本,Type_text的第一个字母指定返回值。

※ argument1,…:为要传递给过程的参数。

Excel 隐藏号码只显示身份证号码后四位数:CONCATENATE、RIGHT和REPT函数实现

为了保证用户的账户安全,一些常用的证件号码,如身份证、银行卡号码等,可以只显示后面四位号码,其他号码用星号代替。此时可通过CONCATENATE、RIGHT和REPT函数实现。

例1:将保险号码的后四位数与“***-**-”文本字符串合并

01 在“B2”单元格中输入完整的保险号码,本例输入“162-54-5679”。

02 在需要显示结果的单元格中输入公式:=CONCATENATE(“***-**-“,RIGHT(B2,4)),然后按下“Enter”键确认,得到结果“***-**-5679”。

例2:将字符串“****-”重复3次的结果与信用卡号码后四位合并

01 在“B2”单元格中输入信用卡号码,本例输入“9558-4698-8259-6425”。

02 在需要显示结果的单元格中输入公式:=CONCATENATE(REPT(“****-“,3),RIGHT(B2,4)),按下“Enter”键确认得到结果“****-****-****-6425”。

Excel 删除单元格开头和结尾的空格:TRIM函数

在工作表中,如果有的单元格中含有空白的开头或结尾,可通过“TRIM”函数将空格删除。TRIM函数的语法为:=TRIM(text),其中“text”参数表示需要清除其中空格的文本。

通过“TRIM”函数将空格删除,具体操作如下。

01 在“B1”单元格中输入需要处理的字符串,本例输入“Within”。

02 在单元格中输入公式:=TRIM(B1),然后按下“Enter”键确认即可得到结果“Within”。

Excel 将全角字符转换为半角字符:ASC函数

如果需要将全角字符转换为半角字符,可通过“ASC”函数实现。ASC函数的语法为:=ASC(text)。

注意 其中参数“text”表示需要转换的字符或单元格,若为字符,则需要用英文状态的双引号引起。

以将全角字符串“excel”转换为半角为例,具体操作为:在需要显示结果的单元格中输入公式:=ASC(“excel “),然后按下“Enter”键确认即可。

Excel 将半角字符转换为全角字符:WIDECHAR函数

如果需要将半角字符转换为全角字符,可通过“WIDECHAR”函数实现。WIDECHAR函数的语法为:=WIDECHAR(text)。

注意 其中参数“text”表示需要转换的字符或单元格,若为字符,则需要用英文状态的双引号引起。

以将字符“EXCEL”转换为全角为例,具体操作为:在需要显示结果的单元格中输入公式:=WIDECHAR(“EXCEL”),然后按下“Enter”键确认即可。

Excel 返回逻辑值FALSE或TRUE

如果需要在单元格中输入一个逻辑值FALSE,可直接在单元格中输入文字FALSE,或者通过FALSE函数来实现。FALSE函数的公式为:=FALSE()。

如果需要在单元格中输入一个逻辑值TRUE,可直接在单元格中输入文字TRUE,或者通过TRUE函数来实现。TRUE函数的公式为:=TRUE()。

Excel 对数据执行真假值判断:IF函数

如果需要对数据执行真假值判断,并根据逻辑计算的真假值返回不同结果,可通过IF函数实现。

IF函数的语法为:IF(logical_test, value_if_true, value_if_false),其中各个函数参数的含义如下。

※ logical_test:表示计算结果为TRUE或FALSE的任意值或表达式。如“A10=100”是一个逻辑表达式,若单元格A10中的值等于100,则计算结果为TRUE,否则为FALSE。

※ value_if_true:是logical_test参数为TRUE时返回的值。例如,若此参数是文本字符串“预算内”,而且logical_test参数的计算结果为TRUE,则IF函数显示文本“预算内”;若logical_test为TRUE而value_if_true为空,则此参数返回0(零)。

※ value_if_false:是logical_test为FALSE时返回的值。例如,若此参数是文本字符串“超出预算”,而logical_test参数的计算结果为FALSE,则IF函数显示文本“超出预算”;若logical_test为FALSE而value_if_false被省略,即value_if_true后面没有逗号,则会返回逻辑值FALSE;若logical_test为FALSE且value_if_false为空,即value_if_true后面有逗号且紧跟着右括号,则会返回值0(零)。