中企动力 > 商学院 > 2017excel
  • ?

    2017年最全的excel函数大全8—文本函数(上)

    Fowey

    展开

    上次给大家分享了《2017年最全的excel函数大全7—财务函数(下)》,这次分享给大家文本函数(上)。

    ASC 函数—将字符串中的全角(双字节)英文字母或片假名更改为半角(单字节)字符

    描述

    对于双字节字符集 (DBCS) 语言,该函数将全角(双字节)字符转换成半角(单字节)字符。

    用法

    ASC(text)

    ASC 函数用法具有以下参数:

    · Text必需。文本或对包含要更改文本的单元格的引用。如果文本不包含任何全角字母,则不会对文本进行转换。

    案例

    =ASC(EXCEL)等于 EXCEL

    =ASC(

    ) equals

    BAHTTEXT 函数—使用 (泰铢)货币格式将数字转换为文本

    描述

    将数字转换为泰语文本并添加后缀“泰铢”。

    通过“区域和语言选项”(Windows“开始”菜单、“控制面板”),可以将 Excel 桌面应用程序中的泰铢格式更改为其他样式。

    用法

    BAHTTEXT(number)

    BAHTTEXT 函数用法具有以下参数:

    · Number必需。 要转换成文本的数字、对包含数字的单元格的引用或结果为数字的公式。

    案例

    CHAR 函数—返回由代码数字指定的字符

    描述

    返回对应于数字代码的字符。 使用 CHAR 可将从其他类型计算机上的文件中获取的代码页数字转换为字符。

    用法

    CHAR(number)

    CHAR 函数用法具有以下参数:

    · Number必需。 介于 1 到 255 之间的数字,指定所需的字符。 使用的是当前计算机字符集中的字符。

    案例

    CLEAN 函数—删除文本中所有非打印字符

    描述

    删除文本中所有不能打印的字符。 对从其他应用程序导入的文本使用 CLEAN,将删除其中含有的当前操作系统无法打印的字符。 例如,可以使用 CLEAN 删除某些通常出现在数据文件开头和结尾处且无法打印的低级计算机代码。

    用法

    CLEAN(text)

    CLEAN 函数用法具有以下参数:

    · 文本必需。 要从中删除非打印字符的任何工作表信息。

    案例

    CODE 函数—返回文本字符串中第一个字符的数字代码

    描述

    返回文本字符串中第一个字符的数字代码。 返回的代码对应于本机所使用的字符集。

    用法

    CODE(text)

    CODE 函数用法具有以下参数:

    · Text必需。 要为其获取第一个字符的代码的文本。

    案例

    CONCAT 函数—将多个区域和/或字符串的文本组合起来,但不提供分隔符或 IgnoreEmpty 参数。

    描述

    CONCAT 函数将多个区域和/或字符串的文本组合起来,但不提供分隔符或 IgnoreEmpty 参数。

    用法

    CONCAT(text1, [text2],…)

    例如,=CONCAT(明, ,天, ,将, ,有, ,日, ,出。) 将返回明天将有日出。

    备注

    · 如果结果字符串超过 32767 个字符(单元格限制),则 CONCAT 返回 #VALUE! 错误。

    案例

    案例 1

    由于此函数允许整列和整行引用,所以它将返回以下结果:A’sa1a2a4a5a6a7B’sb1b2b4b5b6b7

    案例 2

    结果:a1b1a2b2a4b4a5b5a6b6a7b7

    案例 3

    CONCATENATE 函数—将几个文本项合并为一个文本项

    描述

    使用CONCATENATE(其中一个文本函数)将两个或多个文本字符串联接为一个字符串。

    用法:

    CONCATENATE(text1, [text2], ...)

    例如:

    · =CONCATENATE(Stream population for , A2, , A3, is , A4, /mile)

    · =CONCATENATE(B2, , C2)

    案例

    常见问题

    最佳做法

    DBCS 函数—将字符串中的半角(单字节)英文字母或片假名更改为全角(双字节)字符

    描述

    本“帮助”主题中描述的函数将字符串中的半角(单字节)字母转换为全角(双字节)字符。函数的名称(及其转换的字符)取决于您的语言设置。

    对于日文,该函数将字符串中的半角(单字节)英文字母或片假名更改为全角(双字节)字符。

    用法

    DBCS(text)

    DBCS 函数用法具有以下参数:

    · Text必需。文本或包含要转换的文本的单元格的引用。如果文本中不包含任何半角英文字母或片假名,则不会对文本进行转换。

    案例

    =DBCS(EXCEL)等于 EXCEL

    =DBCS(

    ) equals

    以上是所有EXCEL的文本函数(上)描述用法以及使用案例。这次分享中存在哪些疑问或者哪些不足,可以在下面进行评论。如果觉得不错,可以分享给你的朋友,让大家一起掌握这些excel的文本函数(上)。

  • ?

    2017年最全的excel函数大全4—信息函数

    剑刃

    展开

    上次给大家分享了《2017年最全的excel函数大全(3)——查找和引用函数(下)》,这次分享给大家信息函数。

    CELL 函数

    描述

    CELL 函数返回有关单元格的格式、位置或内容的信息。 例如,如果要在对单元格执行计算之前,验证它包含的是数值而不是文本,则可以使用以下公式:

    = IF( CELL(type, A1) = v, A1 * 2, 0)

    仅当单元格 A1 包含数值时,此公式才计算 A1*2 ;如果 A1 包含文本或为空,则此公式将返回 0。

    用法

    CELL(info_type, [reference])

    CELL 函数用法具有下列参数:

    ü Info_type必需。 一个文本值,指定要返回的单元格信息的类型。 下面的列表显示了 Info_type 参数的可能值及相应的结果。

    ü Reference可选。 需要其相关信息的单元格。 如果省略,则将 Info_type 参数中指定的信息返回给最后更改的单元格。 如果参数 reference 是某一单元格区域,则函数 CELL 只将该信息返回给该区域左上角的单元格。

    CELL 格式代码

    下面的列表描述了当参数 Info_type 为“format”,以及参数 reference 为用内置数字格式设置的单元格时,函数 CELL 返回的文本值。

    注意:如果 CELL 函数中的 Info_type 参数为“format”,并且以后向被引用的单元格应用了其他格式,则必须重新计算工作表以更新 CELL 函数的结果。

    案例

    ERROR.TYPE 函数

    描述

    返回对应于 Microsoft Excel 中的错误值之一的数字或返回“#N/A”错误(如果不存在错误)。 您可以使用 IF 函数中的 ERROR.TYPE 测试错误值并返回一个文本字符串(例如消息)而非错误值。

    用法

    ERROR.TYPE(error_val)

    ERROR.TYPE 函数用法具有下列参数:

    ü Error_val 必需。 要查找其标识号的错误值。 尽管 error_val 可作为实际的错误值,但它通常是对包含要测试的公式的单元格的引用。

    案例

    INFO 函数

    描述

    返回有关当前操作环境的信息。

    用法

    INFO(type_text)

    INFO 函数用法具有下列参数:

    ü Type_text 必需。 用于指定要返回的信息类型的文本。

    案例

    IS functions

    描述

    这些函数统称为IS函数,此类函数可检验指定值并根据结果返回 TRUE 或 FALSE。 例如,如果参数 value 引用的是空单元格,则ISBLANK函数返回逻辑值 TRUE;否则,返回 FALSE。

    在对某一值执行计算或执行其他操作之前,可以使用IS函数获取该值的相关信息。 例如,通过将ISERROR函数与IF函数结合使用,可以在出现错误时执行其他操作:

    =IF(ISERROR(A1), 出现错误。, A1 * 2)

    此公式检验单元格 A1 中是否存在错误情形。 如果存在,则IF函数返回消息“出现错误”。如果不存在,则IF函数执行计算 A1*2。

    用法

    ISBLANK(value)ISERR(value)ISERROR(value)ISLOGICAL(value)ISNA(value)ISNONTEXT(value)ISNUMBER(value)ISREF(value)ISTEXT(value)

    IS函数用法具有下列参数:

    ü value必需。 指的是要测试的值。 参数 value 可以是空白(空单元格)、错误值、逻辑值、文本、数字、引用值,或者引用要测试的以上任意值的名称。

    其他

    l IS函数的参数 value 是不可转换的。 任何用双引号引起来的数值都将被视为文本。 例如,在其他大多数需要数字的函数中,文本值 19 会转换成数字 19。 然而在公式ISNUMBER(19)中,19 并不会从文本值转换成数值,此时函数ISNUMBER返回 FALSE。

    l IS函数在公式中非常有用,可用来测试计算结果。 当与函数IF结合使用时,这些函数可提供一种用来在公式中查找错误的方法(请参阅下面的示例)。

    案例

    案例 1

    案例 2

    ISEVEN 函数

    描述

    如果参数 number 为偶数,返回 TRUE,否则返回 FALSE。

    用法

    ISEVEN(number)

    ISEVEN 函数用法具有下列参数:

    ü Number必需。 要测试的值。 如果 number 不是整数,将被截尾取整。

    其他

    如果 number 为非数值型,则 ISEVEN 返回 错误值 #VALUE!。

    案例

    ISFORMULA 函数

    描述

    检查是否存在包含公式的单元格引用,然后返回 TRUE 或 FALSE。

    用法

    ISFORMULA(reference)

    ISFORMULA 函数用法具有下列参数:

    ü 引用 必需。 引用是对要测试单元格的引用。 引用可以是单元格引用或引用单元格的公式或名称。

    其他

    如果引用不是有效的数据类型,如并非引用的定义名称,则 ISFORMULA 将返回错误值 #VALUE! 。

    案例

    N 函数

    描述

    返回转化为数值后的值。

    用法

    N(value)

    N 函数用法具有下列参数:

    ü Value必需。 要转换的值。 N 转换下表中列出的值。

    其他

    通常不需要在公式中使用 N 函数,因为 Excel 可以根据需要自动转换值。 提供此函数是为了与其他电子表格程序兼容。

    Excel 可将日期存储为可用于计算的序列号。 默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。

    案例

    SHEET 函数

    描述

    返回引用工作表的工作表编号。

    用法

    SHEET(value)

    SHEET 函数用法具有下列参数:

    ü Value 可选。 Value 为所需工作表编号的工作表或引用的名称。 如果 Value 被省略,则 SHEET 返回含有该函数的工作表编号。

    其他

    l SHEET 包含所有工作表(显示、隐藏或绝对隐藏)以及所有其他工作表类型(宏、图表或对话框工作表)。

    l 如果 Value 参数为无效值,则 SHEET 返回错误值 #REF! 。 例如,=SHEET(Sheet1!#REF) 将返回错误值 #REF! 。

    l 如果 Value 参数为无效的工作表名称,则 SHEET 返回错误值 #NA。 例如,=SHEET(“badSheetName”) 将返回错误值 #NA。

    l SHEET 在对象模型 (OM) 中不可用,因为对象模型已包含相似功能。

    案例

    SHEETS 函数

    描述

    返回引用中的工作表数。

    用法

    SHEETS(reference)

    SHEETS 函数用法具有下列参数:

    ü Reference 可选。 Reference 指一项引用,此函数要获得引用中所包含的工作表数。 如果 Reference 被省略,SHEETS 返回工作簿中含有该函数的工作表数。

    其他

    l SHEETS 包含所有工作表(显示、隐藏或绝对隐藏)以及所有其他工作表类型(宏、图表或对话框工作表)。

    l 如果 reference 为无效值,则 SHEETS 返回错误值 #REF! 。

    l SHEETS 在对象模型 (OM) 中不可用,因为对象模型已包含相似功能。

    案例

    TYPE 函数

    描述

    返回数值的类型。 当某一个函数的计算结果取决于特定单元格中数值的类型时,可使用函数 TYPE。

    用法

    TYPE(value)

    TYPE 函数用法具有下列参数:

    ü Value必需。 可以为任意 Microsoft Excel 数值,如数字、文本以及逻辑值等等。

    其他

    l 当您使用可接受不同数据类型(例如 ARGUMENT 和 INPUT)的函数时,TYPE 非常有用。 使用 TYPE 了解函数或公式将返回什么类型的数据。

    l 不能使用 TYPE 确定单元格是否包含公式。 TYPE 仅确定结果值或显示值的类型。 如果值是对一个包含公式的单元格的单元格引用,则 TYPE 返回公式结果值的类型。

    案例

    以上是所有excel的信息函数说明语法以及使用案例。这次分享中存在哪些疑问或者哪些不足,可以在下面进行评论。如果觉得不错,可以分享给你的朋友,让大家一起掌握这些excel的信息函数。

  • ?

    2017年最全的excel函数大全7—财务函数(上)

    鹿追命

    展开

    上次给大家分享了《2017年最全的excel函数大全6—日期和时间函数(下)》,这次分享给大家财务函数(上)。

    ACCRINT 函数—返回定期支付利息的债券的应计利息

    描述

    返回定期付息证券的应计利息。

    用法

    ACCRINT(issue, first_interest, settlement, rate, par, frequency, [basis], [calc_method])

    重要:应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。

    ACCRINT 函数用法具有下列参数:

    Issue 必需。 有价证券的发行日。

    First_interest 必需。 有价证券的首次计息日。

    Settlement 必需。 有价证券的结算日。 有价证券结算日是在发行日之后,有价证券卖给购买者的日期。

    Rate 必需。 有价证券的年息票利率。

    Par 必需。 证券的票面值。 如果省略此参数,则 ACCRINT 使用 ¥10,000。

    Frequency 必需。 年付息次数。 如果按年支付,frequency = 1;按半年期支付,frequency = 2;按季支付,frequency = 4。

    Basis 可选。 要使用的日计数基准类型。


    calc_method可选。 一个逻辑值,指定当结算日期晚于首次计息日期时用于计算总应计利息的方法。 如果值为 TRUE (1),则返回从发行日到结算日的总应计利息。 如果值为 FALSE (0),则返回从首次计息日到结算日的应计利息。 如果不输入此参数,则默认为 TRUE。


    其他

    Microsoft Excel 可将日期存储为可用于计算的序列号。默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。

    issue、first_interest、settlement、frequency 和 basis 将被截尾取整

    如果 issue、first_interest 或 settlement 不是有效日期,则 ACCRINT 将返回 #VALUE! 错误值。

    如果 rate ≤ 0 或 par ≤ 0,则 ACCRINT 将返回 #NUM! 错误值。

    如果 frequency 不是数字 1、2 或 4,则 ACCRINT 将返回 #NUM! 错误值

    如果 basis 0 或 basis 4,则 ACCRINT 将返回 #NUM! 错误值。

    如果 issue ≥ settlement,则 ACCRINT 将返回 #NUM! 错误值

    函数 ACCRINT 的计算公式如下:


    其中:

    Ai = 奇数期内第 i 个准票息期的应计天数。

    NC = 奇数期内的准票息期期数。 如果该数含有小数位,则向上进位至最接近的整数。

    NLi = 奇数期内准票息期的正常天数。


    案例

    ACCRINTM 函数—返回在到期日支付利息的债券的应计利息

    描述

    返回在到期日支付利息的有价证券的应计利息。

    用法

    ACCRINTM(issue, settlement, rate, par, [basis])

    重要: 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。

    ACCRINTM 函数用法具有下列参数:

    Issue 必需。 有价证券的发行日。

    Settlement 必需。 有价证券的到期日。

    Rate 必需。 有价证券的年息票利率。

    Par 必需。 证券的票面值。 如果省略此参数,则 ACCRINTM 使用 ¥10,000。

    Basis 可选。 要使用的日计数基准类型。

    其他

    Microsoft Excel 可将日期存储为可用于计算的序列号。默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。

    Issue、settlement 和 basis 将被截尾取整。

    如果 issue 或 settlement 不是有效日期,则 ACCRINTM 将返回 #VALUE! 错误值。

    如果 rate ≤ 0 或 par ≤ 0,则 ACCRINTM 将返回 #NUM! 错误值。

    如果 basis 0 或 basis 4,则 ACCRINTM 将返回 #NUM! 错误值。

    如果 issue ≥ settlement,则 ACCRINTM 将返回 #NUM! 错误值。

    ACCRINTM 的计算公式如下:

    ACCRINTM = par x rate x A/D

    其中:

    A = 按月计算的应计天数。 在计算到期付息的利息时指发行日与到期日之间的天数。

    D = 年基准数。

    案例

    AMORDEGRC 函数—使用折旧系数返回每个记帐期的折旧值

    描述

    返回每个结算期间的折旧值。 该函数主要为法国会计系统提供。 如果某项资产是在该结算期的中期购入的,则按直线折旧法计算。 该函数与函数 AMORLINC 相似,不同之处在于该函数中用于计算的折旧系数取决于资产的寿命。

    用法

    AMORDEGRC(cost, date_purchased, first_period, salvage, period, rate, [basis])

    重要:应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。

    AMORDEGRC 函数用法具有下列参数:

    Cost 必需。 资产原值。

    Date_purchased 必需。 购入资产的日期。

    First_period 必需。 第一个期间结束时的日期。

    Salvage 必需。 资产在使用寿命结束时的残值。

    Period 必需。 期间。

    Rate 必需。 折旧率。

    Basis 可选。 要使用的年基准。

    其他

    Microsoft Excel 可将日期存储为可用于计算的序列号。默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。

    此函数返回折旧值,截止到资产生命周期的最后一个期间,或直到累积折旧值大于资产原值减去残值后的成本价。

    折旧系数为:

    最后一个期间之前的那个期间的折旧率将增加到 50%,最后一个期间的折旧率将增加到 100%。

    如果资产的生命周期在 0 到 1、1 到 2、2 到 3 或 4 到 5 之间,将返回 #NUM! 错误值。

    案例

    AMORLINC 函数—返回每个记帐期的折旧值

    描述

    返回每个结算期间的折旧值。 该函数主要为法国会计系统提供。 如果某项资产是在该结算期的中期购入的,则按直线折旧法计算。

    用法

    AMORLINC(cost, date_purchased, first_period, salvage, period, rate, [basis])

    重要:应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。

    AMORLINC 函数用法具有下列参数:

    Cost必需。 资产原值。

    Date_purchased必需。 购入资产的日期。

    First_period必需。 第一个期间结束时的日期。

    Salvage必需。 资产在使用寿命结束时的残值。

    Period必需。 期间。

    Rate必需。 折旧率。

    Basis可选。 要使用的年基准。

    其他

    Microsoft Excel 可将日期存储为可用于计算的序列号。默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。

    案例

    COUPDAYBS 函数—返回从票息期开始到结算日之间的天数

    描述

    COUPDAYBS 函数返回从付息期开始到结算日的天数。

    用法

    COUPDAYBS(settlement, maturity, frequency, [basis])

    重要:应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。

    COUPDAYBS 函数用法具有下列参数:

    Settlement必需。 有价证券的结算日。 有价证券结算日是在发行日之后,有价证券卖给购买者的日期。

    Maturity必需。 有价证券的到期日。 到期日是有价证券有效期截止时的日期。

    Frequency必需。 年付息次数。 如果按年支付,frequency = 1;按半年期支付,frequency = 2;按季支付,frequency = 4。

    Basis可选。 要使用的日计数基准类型。

    其他

    Microsoft Excel 可将日期存储为可用于计算的序列号。默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。

    结算日是购买者买入息票(如债券)的日期。 到期日是息票有效期截止时的日期。 例如,在 2008 年 1 月 1 日发行的 30 年期债券,六个月后被购买者买走。 则发行日为 2008 年 1 月 1 日,结算日为 2008 年 7 月 1 日,而到期日是在发行日 2008 年 1 月 1 日的 30 年后,即 2038 年 1 月 1 日。

    所有参数都将被截尾取整。

    如果 settlement 或 maturity 不是有效日期,则 COUPDAYBS 返回错误值 #VALUE!。

    如果 frequency 不为数字 1、2 或 4,则 COUPDAYBS 返回错误值 #NUM!。

    如果 basis 0 或 basis 4,则 COUPDAYBS 返回错误值 #NUM!。

    如果 settlement ≥ maturity,则 COUPDAYBS 返回错误值 #NUM!。

    案例

    COUPDAYS 函数—返回包含结算日的票息期天数

    描述

    返回结算日所在的付息期的天数。

    用法

    COUPDAYS(settlement, maturity, frequency, [basis])

    重要:应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。

    COUPDAYS 函数用法具有下列参数:

    Settlement必需。 有价证券的结算日。 有价证券结算日是在发行日之后,有价证券卖给购买者的日期。

    Maturity必需。 有价证券的到期日。 到期日是有价证券有效期截止时的日期。

    Frequency必需。 年付息次数。 如果按年支付,frequency = 1;按半年期支付,frequency = 2;按季支付,frequency = 4。

    Basis可选。 要使用的日计数基准类型。

    其他

    Microsoft Excel 可将日期存储为可用于计算的序列号。默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。

    结算日是购买者买入息票(如债券)的日期。 到期日是息票有效期截止时的日期。 例如,在 2008 年 1 月 1 日发行的 30 年期债券,六个月后被购买者买走。 则发行日为 2008 年 1 月 1 日,结算日为 2008 年 7 月 1 日,而到期日是在发行日 2008 年 1 月 1 日的 30 年后,即 2038 年 1 月 1 日。

    所有参数都将被截尾取整。

    如果 settlement 或 maturity 不是有效日期,则 COUPDAYS 返回 错误值 #VALUE!。

    如果 frequency 不为数字 1、2 或 4,则 COUPDAYS 返回 错误值 #NUM!。

    如果 basis 0 或 basis 4,则 COUPDAYS 返回 错误值 #NUM!。

    如果 settlement ≥ maturity,则 COUPDAYS 返回 错误值 #NUM!。

    案例

    COUPDAYSNC 函数—返回从结算日到下一票息支付日之间的天数

    描述

    返回从结算日到下一票息支付日之间的天数。

    用法

    COUPDAYSNC(settlement, maturity, frequency, [basis])

    重要:应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。

    COUPDAYSNC 函数用法具有下列参数:

    Settlement必需。 有价证券的结算日。 有价证券结算日是在发行日之后,有价证券卖给购买者的日期。

    Maturity必需。 有价证券的到期日。 到期日是有价证券有效期截止时的日期。

    Frequency必需。 年付息次数。 如果按年支付,frequency = 1;按半年期支付,frequency = 2;按季支付,frequency = 4。

    Basis可选。 要使用的日计数基准类型。

    其他

    Microsoft Excel 可将日期存储为可用于计算的序列号。默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。

    结算日是购买者买入息票(如债券)的日期。 到期日是息票有效期截止时的日期。 例如,在 2008 年 1 月 1 日发行的 30 年期债券,六个月后被购买者买走。 则发行日为 2008 年 1 月 1 日,结算日为 2008 年 7 月 1 日,而到期日是在发行日 2008 年 1 月 1 日的 30 年后,即 2038 年 1 月 1 日。

    所有参数都将被截尾取整。

    如果 settlement 或 maturity 不是有效日期,则 COUPDAYSNC 返回错误值 #VALUE!。

    如果 frequency 不为数字 1、2 或 4,则 COUPDAYSNC 返回错误值 #NUM!。

    如果 basis 0 或 basis 4,则 COUPDAYSNC 返回错误值 #NUM!

    如果 settlement ≥ maturity,则 COUPDAYSNC 返回错误值 #NUM!。

    案例

    COUPNCD 函数—返回结算日之后的下一个票息支付日

    描述

    返回一个表示在结算日之后下一个付息日的数字。

    用法

    COUPNCD(settlement, maturity, frequency, [basis])

    重要:å...

  • ?

    VS2017下编写C 程序读写Excel文件

    郑向真

    展开

    前言:

    有时候我们需要对Excel文件进行特殊处理,这种情况下写个小程序是很方便的。最近刚开始学C#,正好有同学需要处理个Excel文件,我就写了一个程序。发现网上虽有资料,但很多行不通,特此记录,以免后来人少走弯路。

    正文:

    首先,界面如下,当然,程序员不需要看界面,从代码中就可以直接学习。

    然后,需要下载一个文件“Microsoft.Office.Interop.Excel.dll”,自行网搜。导入到引用之中。然后也把System.Windows.Forms加入引用。

    最后,上代码。

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using System.Windows;

    using System.Windows.Controls;

    using System.Windows.Data;

    using System.Windows.Documents;

    using System.Windows.Input;

    using System.Windows.Media;

    using System.Windows.Media.Imaging;

    using System.Windows.Navigation;

    using System.Windows.Shapes;

    //ghw:add

    using System.Windows.Forms;

    using Excel = Microsoft.Office.Interop.Excel;

    namespace WpfExcel

    {

    ///

    /// MainWindow.xaml 的交互逻辑

    ///

    public partial class MainWindow : Window

    {

    public Excel.Application excel;

    public Excel.Workbooks wbs;

    public Excel.Workbook wb;

    public Excel.Worksheets wss;

    public Excel.Worksheet ws;

    public MainWindow()

    {

    InitializeComponent();

    }

    private void Button_Click(object sender, RoutedEventArgs e)

    {

    System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();

    fd.Filter = @"Excel文件(*.xls; *.xlsx)|*.xls; *.xlsx|All File(*.*)|*.*";

    if(fd.ShowDialog()==System.Windows.Forms.DialogResult.OK)

    {

    filePath.Text = fd.FileName;

    }

    }

    private void BtnAna_Click(object sender, RoutedEventArgs e)

    {

    try

    {

    excel= new Excel.Application();

    wbs = excel.Workbooks;

    wb = wbs.Add(filePath.Text);

    int ncount = wb.Worksheets.Count;

    if (ncount < 1)

    {

    System.Windows.Forms.MessageBox.Show("没有内容");

    return;

    }

    else

    {

    // System.Windows.Forms.MessageBox.Show("ok,继续");

    }

    for(int i=0; i

    {

    ws = (Excel.Worksheet)wb.Sheets.Item[i+1];

    cbSheet.Items.Add(ws.Name);

    }

    cbSheet.Text = ws.Name;

    for(int i=0;i<10;i++)

    {

    cbLeft.Items.Add(i+1);

    cbLeftNum.Items.Add(i + 1);

    cbRight.Items.Add(i + 1);

    cbRightNum.Items.Add(i + 1);

    }

    cbLeft.Text = "2";

    cbLeftNum.Text = "3";

    cbRight.Text = "4";

    cbRightNum.Text = "5";

    // excel.Quit();

    // excel = null;

    }

    catch(Exception ex)

    {

    System.Windows.Forms.MessageBox.Show("解析数据异常,请检查数据结构");

    }

    finally

    {

    excel.Quit();

    excel = null;

    }

    }

    private void BtnRes_Click(object sender, RoutedEventArgs e)

    {

    try

    {

    int nMin = Convert.ToInt32(tbMin.Text);

    int nMax = Convert.ToInt32(tbMax.Text);

    excel = new Excel.Application();

    wbs = excel.Workbooks;

    wb = wbs.Add(filePath.Text);

    int ncount = wb.Worksheets.Count;

    if (ncount < 1)

    {

    System.Windows.Forms.MessageBox.Show("没有内容");

    return;

    }

    else

    {

    // System.Windows.Forms.MessageBox.Show("ok,继续");

    }

    ws = wb.Sheets[cbSheet.Text];

    if(ws.Columns.Count<1)

    {

    System.Windows.Forms.MessageBox.Show("没有内容");

    }

    else

    {

    // System.Windows.Forms.MessageBox.Show("ok,继续");

    }

    string s1="01234";

    int MaxIndex = 222;

    string[,] lrData = new string[MaxIndex, 4];

    int leftArr = Convert.ToInt32(cbLeft.Text);

    int leftNumArr = Convert.ToInt32(cbLeftNum.Text);

    int rightArr = Convert.ToInt32(cbRight.Text);

    int rightNumArr = Convert.ToInt32(cbRightNum.Text);

    int leftNum = 0;

    for(int i=1;i< (MaxIndex+1);i++)

    {

    if(((Excel.Range)ws.Cells[i, leftArr]).Text =="")

    {

    break;

    }

    else

    {

    lrData[leftNum, 0]= ((Excel.Range)ws.Cells[leftNum+1, leftArr]).Text;

    lrData[leftNum, 1] = ((Excel.Range)ws.Cells[leftNum + 1, leftNumArr]).Text;

    leftNum++;

    }

    }

    int rightNum = 0;

    for (int i = 1; i < (MaxIndex + 1); i++)

    {

    if (((Excel.Range)ws.Cells[i, rightArr]).Text == "")

    {

    break;

    }

    else

    {

    lrData[rightNum, 2] = ((Excel.Range)ws.Cells[rightNum + 1, rightArr]).Text;

    lrData[rightNum, 3] = ((Excel.Range)ws.Cells[rightNum + 1, rightNumArr]).Text;

    rightNum++;

    }

    }

    Excel.Worksheet ws1 = (Excel.Worksheet)wb.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);

    ws1.Name = "result";

    int nl = 0;

    int nr = 0;

    for(int x=0;x

    {

    for(int y=0;y

    {

    ws1.Cells[x * rightNum + y + 1, 1] = lrData[x, 0];

    ws1.Cells[x * rightNum + y + 1, 2] = lrData[x, 1];

    ws1.Cells[x * rightNum + y + 1, 3] = lrData[y, 2];

    ws1.Cells[x * rightNum + y + 1, 4] = lrData[y, 3];

    ws1.Cells[x * rightNum + y + 1, 5] = lrData[x, 0] + lrData[y, 2];

    ws1.Cells[x * rightNum + y + 1, 6] = lrData[x, 1] + "+" + lrData[y, 3];

    nl = Convert.ToInt32(lrData[x, 1]);

    nr = Convert.ToInt32(lrData[y, 3]);

    ws1.Cells[x * rightNum + y + 1, 7] = Convert.ToString(nl + nr);

    }

    }

    wb.SaveAs(cbSheet.Text+".xlsx");

    wb.Save();

    wb.Close();

    System.Windows.Forms.MessageBox.Show("结果文件保存在 我的文档 中,命名为:"+ cbSheet.Text + ".xlsx");

    }

    catch(Exception ex)

    {

    System.Windows.Forms.MessageBox.Show("解析数据异常,请检查数据结构");

    }

    finally

    {

    excel.Quit();

    excel = null;

    }

    }

    }

    }

    写完之后,我觉得Excel公式可能很方便的就能实现这个程序的功能,我虽为程序员,但是真的对那些公式有点陌生,虽说学起来可能很快,但就是没学,竟然有种“隔行如隔山”的感觉。

    不敢说自己没有时间,前段时间晚上回家,看完了《铁齿铜牙纪晓岚》四部曲,最近也看完了《宰相刘罗锅》,惭愧。

    中间插:每日可行,长按copy本行 道4亚汇宁斯忆34挨非 打开阿里家的支F宝领钱。

    我觉得应该没有人能看到这。如果有桌面无聊的人请留言哦!

    C#现在真是尴尬,java在手机端(Android)和web端(服务器)上很有市场,C#想进入桌面应用,但是有老大哥MFC(C++),现在QT又风生水起,win7和WinXP份额还很大, 你认为,C-Sharp的前景怎么样呢?

    真希望微软的真能跨平台啊,可惜微软短期内不会帮助竞争对手了。

    助人者会助己吗?

    要么C#死、Windows活,要么Windows死、C#活?

    肯定不是。

    平台不跨平台,C#顶多奄奄一息而已。

    跨平台,Windows可能活的更好。

    ————分割线————

    耿然原创,勤了周更,懒了月更。

    欢迎评论、吐槽、爆料、投诉、建议。

    评论比文章更精彩。

    ————分割线————

  • ?

    2017年最全的excel函数大全(2)—web函数

    紫色

    展开

    上次给大家分享了《2017年最全的excel函数大全(1)——统计函数》,这次分享给大家web类函数。

    WEBSERVICE 函数

    描述:

    返回 Intranet 或 Internet 上的 Web 服务数据。

    用法:

    WEBSERVICE(url)

    WEBSERVICE 函数用法具有下列参数描述。

    Url 必需。 Web 服务的 URL。

    备注

    如果参数无法返回数据,则 WEBSERVICE 返回错误值 #VALUE!。

    如果参数导致字符串无效或含有的字符超过允许的单元格限制(32767 个字符),则 WEBSERVICE 返回错误值 #VALUE!。

    如果 url 字符串所含字符超过 GET 请求允许的 2048 个字符,则 WEBSERVICE 返回错误值 #VALUE!。

    对于不支持的协议,例如 ftp :// 或 file://,WEBSERVICE 返回 #VALUE! 错误值。

    ENCODEURL 函数

    描述

    返回 URL 编码的字符串。

    用法

    ENCODEURL(text)

    ENCODEURL 函数用法具有下列参数。

    Text 要进行 URL 编码的字符串。

    FILTERXML 函数

    描述

    使用指定的 XPath 从 XML 内容返回特定数据。

    用法

    FILTERXML(xml, xpath)

    FILTERXML 函数语法具有下列参数。

    Xml必需。有效 XML 格式中的字符串。

    Xpath 必需。标准 XPath 格式中的字符串。

    其他

    如果 XML 无效,FILTERXML 返回错误值 #VALUE!。

    如果 XML 包含带有无效前缀的命名空间,FILTERXML 返回错误值 #VALUE!。

    案例

    这里用用有道翻译api接口把中文翻译成英文。

    使用ENCODEURL 函数将单元格 B2 中的中文作为参数传递到 C2 的 Web 查询中。FILTERXML 函数在此次查询中,可返回D2:D4的翻译后的英文。

    公式如下:

    显示结果如下:

    以上是所有excel的web函数说明以及语法,以及使用案例。这次分享中存在哪些疑问或者哪些不足,可以在下面进行评论。如果觉得不错,可以分享给你的朋友,让大家一起掌握这些excel的web函数。

  • ?

    2017年最全的excel函数大全12—工程函数(中)

    齐冰绿

    展开

    上次给大家分享了《2017年最全的excel函数大全12—工程函数(上)》,这次分享给大家工程函数(中)

    DEC2BIN 函数

    描述

    将十进制数转换为二进制数。

    用法

    DEC2BIN(number, [places])

    DEC2BIN 函数用法具有下列参数:

    “数字”必需。 要转换的十进制整数。 如果数字为负数,则忽略有效的 place 值,且 DEC2BIN 返回 10 个字符的(10 位)二进制数,其中最高位为符号位。 其余 9 位是数量位。 负数由二进制补码记数法表示。Places可选。 要使用的字符数。 如果省略 places,则 DEC2BIN 使用必要的最小字符数。 Places 可用于在返回的值前置 0(零)。

    备注

    如果 number -512 或 number 511,则 DEC2BIN 返回 错误值 #NUM!。如果 number 为非数值型,则 DEC2BIN 返回 错误值 #VALUE!。如果 DEC2BIN 需要比 places 字符更多的字符数,则返回 错误值 #NUM!。如果 places 不是整数,将截尾取整。如果 places 为非数值型,则 DEC2BIN 返回 错误值 #VALUE!。如果 places 为零或负值,则 DEC2BIN 返回 错误值 #NUM!。

    案例

    DEC2HEX 函数

    描述

    将十进制数转换为十六进制数。

    用法

    DEC2HEX(number, [places])

    DEC2HEX 函数用法具有下列参数:

    Number必需。 要转换的十进制整数。 如果数字为负数,则忽略 places,且 DEC2HEX 返回 10 个字符的(40 位)十六进制数,其中最高位为符号位。 其余 39 位是数量位。 负数由二进制补码记数法表示。Places可选。 要使用的字符数。 如果省略 places,则 DEC2HEX 使用必要的最小字符数。 Places 可用于在返回的值前置 0(零)。

    备注

    如果 number -549,755,813,888 或 number 549,755,813,887,则 DEC2HEX 返回 错误值 #NUM!。如果 number 为非数值型,则 DEC2HEX 返回 错误值 #VALUE!。如果 DEC2HEX 的结果需要超过指定 Places 字符数的数目,则返回 #NUM! 错误值。 例如,因为结果 (40) 需要两个字符,所以 DEC2HEX(64,1) 返回错误值。如果 Places 不是整数,则 Places 值截尾取整。如果 Places 为非数值型,则 DEC2HEX 返回 错误值 #VALUE!。如果 Places 为负值,则 DEC2HEX 返回 错误值 #NUM!。

    案例

    DEC2OCT 函数

    描述

    将十进制数转换为八进制数。

    用法

    DEC2OCT(number, [places])

    DEC2OCT 函数用法具有下列参数:

    Number必需。 要转换的十进制整数。 如果数字为负数,则忽略 places,且 DEC2OCT 返回 10 个字符的(30 位)八进制数,其中最高位为符号位。 其余 29 位是数量位。 负数由二进制补码记数法表示。Places可选。 要使用的字符数。 如果省略 places,则 DEC2OCT 使用必要的最小字符数。 Places 可用于在返回的值前置 0(零)。如果 number -536,870,912 或 number 536,870,911,则 DEC2OCT 返回 错误值 #NUM!。如果 number 为非数值型,函数 DEC2OCT 返回 错误值 #VALUE!。如果 DEC2OCT 需要比 places 字符更多的字符数,则返回 错误值 #NUM!。如果 places 不是整数,将截尾取整。如果 places 为非数值型,则 DEC2OCT 返回 错误值 #VALUE!。如果 Places 为负值,则 DEC2OCT 返回 错误值 #NUM!。

    案例

    DELTA 函数

    描述

    检验两个值是否相等。 如果 number1=number2,则返回 1;否则返回 0。 可以使用此函数来筛选一组值。 例如,通过对几个 DELTA 函数进行求和,可计算相等对的数量。 此函数也称为 Kronecker Delta 函数。

    用法

    DELTA(number1, [number2])

    DELTA 函数用法具有下列参数:

    Number1必需。 第一个数字。Number2可选。 第二个数字。 如果省略,则假设 Number2 值为零。

    备注

    如果 number1 为非数值型,则 DELTA 返回 错误值 #VALUE!。如果 number2 为非数值型,则 DELTA 返回 错误值 #VALUE!。

    案例

    ERF 函数

    描述

    返回误差函数在上下限之间的积分。

    用法

    ERF(lower_limit,[upper_limit])

    ERF 函数用法具有下列参数:

    Lower_limit必需。 ERF 函数的积分下限。Upper_limit可选。 ERF 函数的积分上限。 如果省略,ERF 积分将在零到 lower_limit 之间。

    备注

    如果 lower_limit 为非数值型,则 ERF 返回 错误值 #VALUE!。如果 upper_limit 为非数值型,则 ERF 返回 错误值 #VALUE!。

    案例

    ERF.PRECISE 函数

    描述

    返回误差函数。

    用法

    ERF.PRECISE(x)

    ERF.PRECISE 函数用法具有下列参数:

    X必需。 ERF.PRECISE 函数的积分下限。

    备注

    如果 lower_limit 非数值型,则 ERF.PRECISE 返回 错误值 #VALUE!。

    案例

    GESTEP 函数

    描述

    如果 number ≥ step,则返回 1;否则返回 0(零)。 可以使用此函数来筛选一组值。 例如,通过对几个 GESTEP 函数进行求和,可计算超过阈值的值的计数。

    用法

    GESTEP(number, [step])

    GESTEP 函数用法具有下列参数:

    Number必需。 要针对步骤进行测试的值。Step可选。 阈值。 如果省略 step 值,则 GESTEP 使用零。

    备注

    如果任一参数为非数值型,则 GESTEP 返回 错误值 #VALUE!。

    案例

    HEX2BIN 函数

    描述

    将十六进制数转换为二进制数。

    用法

    HEX2BIN(number, [places])

    HEX2BIN 函数用法具有下列参数:

    Number必需。 要转换的十六进制数。 Number 不能包含超过 10 个字符。 number 的最高位为符号位(从右侧起第 40 位)。 其余 9 位是数量位。 负数由二进制补码记数法表示。Places可选。 要使用的字符数。 如果省略 places,则 HEX2BIN 使用必要的最小字符数。 Places 可用于在返回的值前置 0(零)。

    备注

    如果 number 为负数,则函数 HEX2BIN 忽略 places,返回 10 位二进制数。如果参数 number 为负数,不能小于 FFFFFFFE00;如果参数 number 为正数,不能大于 1FF。如果 number 不是合法的十六进制数,则 HEX2BIN 返回 错误值 #NUM!。如果 HEX2BIN 需要比 places 指定的更多的位数,则返回 错误值 #NUM!。如果 places 不是整数,将截尾取整。如果 places 为非数值型,则 HEX2BIN 返回 错误值 #VALUE!。如果 places 为负值,则 HEX2BIN 返回 错误值 #NUM!。

    案例

    HEX2OCT 函数

    描述

    将十六进制数转换为八进制数。

    用法

    HEX2OCT(number, [places])

    HEX2OCT 函数用法具有下列参数:

    Number必需。 要转换的十六进制数。 Number 不能包含超过 10 个字符。 Number 的最高位为符号位。 其余 39 位是数量位。 负数由二进制补码记数法表示。Places可选。 要使用的字符数。 如果省略 places,则 HEX2OCT 使用必要的最小字符数。 Places 可用于在返回的值前置 0(零)。

    备注

    如果参数 Number 为负数,则函数 HEX2OCT 将忽略 places,返回 10 位八进制数。如果参数 Number 为负数,不能小于 FFE0000000;如果参数 Number 为正数,不能大于 1FFFFFFF。如果 number 不是合法的十六进制数,则 HEX2OCT 返回 错误值 #NUM!。如果 HEX2OCT 需要比 places 指定的更多的位数,则返回 错误值 #NUM!。如果 places 不是整数,将截尾取整。如果 places 为非数值型,则 HEX2OCT 返回 错误值 #VALUE!。如果 places 为负值,则 HEX2OCT 返回 错误值 #NUM!。

    案例

    IMABS 函数

    描述

    返回以 x+yi 或 x+yj 文本格式表示的复数的绝对值(模)。

    用法

    IMABS(inumber)

    IMABS 函数用法具有下列参数:

    Inumber必需。 需要计算其绝对值的复数。

    备注

    使用函数 COMPLEX 可以将实系数和虚系数复合为复数。复数绝对值的计算公式如下:

    其中:

    z = x + yi

    案例

    IMAGINARY 函数

    描述

    返回以 x+yi 或 x+yj 文本格式表示的复数的虚系数。

    用法

    IMAGINARY(inumber)

    IMAGINARY 函数用法具有下列参数:

    Inumber必需。 需要计算其虚系数的复数。

    备注

    使用函数 COMPLEX 可以将实系数和虚系数复合为复数。

    案例

    IMARGUMENT 函数

    描述

    返回参数θ(theta),即以弧度表示的角,如:

    用法

    IMARGUMENT(inumber)

    IMARGUMENT 函数用法具有下列参数:

    Inumber必需。需要计算其参数θ的复数。

    备注

    使用函数 COMPLEX 可以将实系数和虚系数复合为复数。函数 IMARGUMENT 的计算公式如下:

    其中:

    和

    z = x + yi

    案例

    IMCOS 函数

    描述

    返回以 x+yi 或 x+yj 文本格式表示的复数的余弦。

    用法

    IMCOS(inumber)

    IMCOS 函数用法具有下列参数:

    Inumber必需。 需要计算其余弦的复数。

    备注

    使用函数 COMPLEX 可以将实系数和虚系数复合为复数。如果 inumber 为逻辑值,则 IMCOS 返回 错误值 #VALUE!。复数余弦的计算公式如下:

    案例

    IMCOSH 函数

    描述

    返回以 x+yi 或 x+yj 文本格式表示的复数的双曲余弦值。

    用法

    IMCOSH(inumber)

    IMCOSH 函数用法具有下列参数。

    Inumber 必需。 需要计算其双曲余弦值的复数。

    备注

    使用函数 COMPLEX 可以将实系数和虚系数复合为复数。如果 inumber 为非 x+yi 或 x+yj 文本格式的值,则 IMCOSH 返回错误值 #NUM! 。如果 inumber 为逻辑值,则 IMCOSH 返回错误值 #VALUE! 。

    案例

    以上是所有EXCEL的工程函数(中)描述用法以及使用案例。这次分享中存在哪些疑问或者哪些不足,可以在下面进行评论。如果觉得不错,可以分享给你的朋友,让大家一起掌握这些excel的工程函数(中)。

  • ?

    2017年最全的excel函数大全5—逻辑函数

    夏蓉

    展开

    AND 函数

    描述

    使用AND函数,它是一个逻辑函数,用于确定测试中的所有条件是否均为 TRUE。所有参数的计算结果为 TRUE 时,AND函数返回 TRUE;只要有一个参数的计算结果为 FALSE,即返回 FALSE。

    AND函数的一种常见用途就是扩展执行逻辑测试的其他函数的效用。 例如,IF函数用于执行逻辑测试,它在测试的计算结果为 TRUE 时返回一个值,在测试的计算结果为 FALSE 时返回另一个值。 通过将AND函数用作IF函数的logical_test参数,可以测试多个不同的条件,而不仅仅是一个条件。

    用法

    AND(logical1, [logical2], ...)

    AND函数用法具有以下参数:

    其他

    l 参数的计算结果必须是逻辑值(如 TRUE 或 FALSE),或者参数必须是包含逻辑值的数组或引用。

    l 如果数组或引用参数中包含文本或空白单元格,则这些值将被忽略。

    l 如果指定的区域不包含逻辑值,则AND函数将返回 #VALUE! 错误。

    案例

    案例 1

    案例2

    下面提供了将AND函数单独使用以及与IF函数一起使用的一些常见示例。

    奖金计算

    下面是一个十分常见的应用场景,我们需要使用IF和AND,以计算销售人员是否有资格获得奖金。

    这个公式表示:如果总销售量大于或等于 (=) 销售目标,并且账户额大于或等于 (=) 账户目标额,则以奖金百分比乘以总销售额;否则返回 0。

    FALSE 函数

    描述

    返回逻辑值 FALSE。

    用法

    FALSE

    FALSE 函数用法没有参数。

    其他

    也可以直接在工作表或公式中输入文字 FALSE,Microsoft Excel 会自动将它解释成逻辑值 FALSE。提供 FALSE 函数的目的主要是为了与其他电子表格程序兼容。

    IF 函数

    描述

    IF 函数是 Excel 中最常用的函数之一,它可以对值和期待值进行逻辑比较。IF 函数最简单的形式表示:

    如果(内容为 True,则执行某些操作,否则就执行其他操作)

    因此 IF 语句可能有两个结果。第一个结果是比较结果为 True,第二个结果是比较结果为 False。

    使用逻辑函数 IF 函数时,如果条件为真,该函数将返回一个值;如果条件为假,函数将返回另一个值。

    用法

    IF(logical_test, value_if_true, [value_if_false])

    案例

    简单 IF 案例

    在上面的案例中,单元格 D2 表示:如果(C2 等于是,则返回 1,否则就返回 2)

    在此案例中,单元格 D2 中的公式表示:如果(C2 等于 1,则返回是,否则就返回 否)

    如你所见,IF 函数可用于计算文本和数值。它还可用于计算错误。不仅可以检查一项内容是否等于另一项内容并返回单个结果,而且还可以根据需要使用数学运算符并执行其他计算。 还可以将多个 IF 函数嵌套在一起来执行多个比较。

    注意:如果要在公式中使用文本,需要将文字用引号括起来(例如“Text”)。唯一的例外是使用 TRUE 和 FALSE 时,Excel 能自动理解它们。

    更多 IF 案例

    在上面的案例中,D2 中的 IF 函数表示如果(C2 大于 B2,则返回“超出预算”,否则就返回“在预算范围内”)

    在上面的案例中,函数会返回一个数学运算,而不是文本结果。E2 中的公式表示如果(实际大于预算,则从实际金额中减去预算金额,否则就不返回任何结果)。

    在此案例中,F7 中的公式表示如果(E7 = “是”,则计算 F5 * 8.25% 的总金额,否则就不应该付销售税,因此返回 0)

    最佳做法 :常量

    在最后一个案例中,你可以看到两项都是 “Yes”,并且销售税率 (0.0825) 被直接输入公式中。通常来说,将文本常量(可能需要时不时进行更改的值)直接代入公式的做法不是很好,因为将来很难找到和更改这些常量。最好将常量放入其自己的单元格,一目了然,也便于查找和更改。在这个示例中这样做没关系,因为只有一个 IF 函数,并且销售税率很少变化。即使销售税率有变化,在公式中进行更改也很容易。

    使用 IF 检查单元格是否为空白

    有些时候,你需要检查单元格是否为空白,通常是因为你可能不希望公式没有输入值就显示结果。

    这表示如果(D2 为空白,则返回“Blank”,否则,将返回“Not Blank”)。你还可以针对“Not Blank”条件同样轻松地使用你自己的公式。在下一个示例中,我们将使用 ,而不是 ISBLANK。 实际上意味着“没有内容”。

    在此案例中,我们将使用 ,而不是 ISBLANK。此公式表示如果(D3 没有内容,则返回“Blank”,否则返回“Not Blank”)。

    =IF(D3=,,YourFormula())

    此案例是使用 “” 防止公式在从属单元格空白时进行计算的一种十分常见的方法:

    如果(D3 没有内容,则不返回内容,否则,将计算你的公式)。

    嵌套 IF 示例

    简单 IF 函数只有两个结果(True 或 False),而嵌套 IF 函数有 3 至 64 个结果。

    在上面的案例中,E2 中的公式表示:IF(D2 等于 1,则返回“是”;IF(D2 等于 2,返回“否”;否则返回“Maybe”))。请注意,公式的末尾有两个右括号。需要两个括号来完成两个 IF 函数,如果在输入公式时未使用两个右括号,Excel 将尝试为你更正。

    注意事项

    虽然 Excel 允许嵌套最多 64 个不同的 IF 函数,但不建议这样做。原因如下。

    l 要正确地构建多个 IF 语句需要花大量心思,并且要确保其逻辑在直至结尾的每个条件下都能计算正确。如果嵌套 IF 语句不是 100% 准确,那么公式计算过程可能花 75% 的时间,而返回结果可能花 25% 的时间,并且结果并不理想。但是你得出这 25% 结果的几率很小。

    l 多个 IF 语句维护起来非常困难,特别是当你过一段时间后回头再看,想要了解当时你(其他人的话更糟糕)想要做什么时。

    l 多个 IF 语句需要多个左括号和右括号 (),管理的难易程度取决于公式的复杂性。

    常见问题

    IFERROR 函数

    描述

    如果公式的计算结果错误,则返回您指定的值;否则返回公式的结果。 使用 IFERROR 函数可捕获和处理公式中的错误。

    用法

    IFERROR(value, value_if_error)

    IFERROR 函数用法具有下列参数:

    ü值必需。 检查是否存在错误的参数。

    üValue_if_error必需。 公式的计算结果错误时返回的值。 计算以下错误类型:#N/A、#VALUE!、#REF!、#p/0!、#NUM!、 #NAME? 或 #NULL!。

    其他

    l 如果 Value 或 Value_if_error 是空单元格,则 IFERROR 将其视为空字符串值 ()。

    l 如果 Value 是数组公式,则 IFERROR 为 value 中指定区域的每个单元格返回一个结果数组。

    案例

    案例 1

    案例 2

    IFNA 函数

    描述

    如果公式返回错误值 #N/A,则结果返回您指定的值;否则返回公式的结果。

    用法

    IFNA(value, value_if_na)

    IFNA 函数用法具有下列参数。

    ü Value 必需。 用于检查错误值 #N/A 的参数。

    ü Value_if_na 必需。 公式计算结果为错误值 #N/A 时要返回的值。

    其他

    l 如果 Value 或 Value_if_na 是空单元格,则 IFNA 将其视为空字符串值 ()。

    l 如果 Value 是数组公式,则 IFNA 为 Value 中指定区域的每个单元格以数组形式返回结果。

    案例

    IFS 函数

    描述

    IFS 函数检查是否满足一个或多个条件,且是否返回与第一个 TRUE 条件对应的值。IFS 可以取代多个嵌套 IF 语句,并且可通过多个条件更轻松地读取。

    用法

    IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], [logical_test3, value_if_true3],…)

    案例

    案例 1

    公式表示如果(A2 大于 89,则返回“A”,如果 A2 大于 79,则返回“B”并以此类推,对于所有小于 59 的值,返回“F”)。

    案例 2

    单元格 G7 中的公式表示:如果(单元格 F2 中的值等于 1,则返回的值位于单元格 D2,如果单元格 F2 中的值等于 2,则返回的值位于单元格 D3,并以此类推,如果其他条件均不满足,则最后返回的值位于 D8)。

    其他

    若要指定默认结果,请输入一个对于 logical_test 参数始终为 true 的条件,如 TRUE 或 1=1。如果不满足其他任何条件,则将返回相应值。在案例 1 中,行 6 和行 7(成绩为 58)展示了这一结果。

    l 如果在没有相应value_if_true的情况下提供了logical_test参数,则此函数将显示典型的“你为此函数输入的参数过少”错误消息。

    l 如果logical_test参数经计算解析为 TRUE 或 FALSE 以外的值,则此函数将返回 #VALUE! 错误。

    l 如果找不到 TRUE 条件,则此函数将返回 #N/A!错误。

    NOT 函数

    描述

    如果你想确保一个值不等同于另一值,请使用NOT函数,它是逻辑函数之一。

    NOT 函数会对其参数的值进行求反。

    NOT 函数的一个常见用途是扩展执行逻辑测试的其它函数的有效性。例如,IF 函数将执行逻辑测试,并在计算结果为 TRUE 时返回一个值,在计算结果为 FALSE 时返回另一个值。通过将 NOT 函数作为 IF 函数的 logical_test 参数,你可以测试众多而不仅是单个条件。

    用法

    NOT(逻辑函数)

    NOT 函数语法具有以下参数:

    ü Logical 必需。计算结果为 TRUE 或 FALSE 的任何值或表达式。

    其他

    如果逻辑为 FALSE,NOT 将返回 TRUE;如果逻辑为 TRUE,NOT 将返回 FALSE。

    案例

    案例 1

    案例 2

    下面提供了将NOT函数单独使用以及与IF、AND和OR函数一起使用的一些常见示例。

    销售佣金计算

    下面是一个十分常见的应用场景,我们需要将NOT与IF和AND一起使用,以计算销售人员是否有资格获得奖金。

    公式表示若总销售额不销售目标,且客户数量不小于客户目标,则将销售总额乘以佣金%,否则返回 0。

    OR 函数

    描述

    使用OR函数,它是一个逻辑函数,用于确定测试中的所有条件是否均为 TRUE。

    OR 函数的一个常见用途是扩展执行逻辑测试的其他函数的有效性。例如,IF 函数会执行逻辑测试,并在测试计算为 TRUE 时返回一个值,在测试计算为 FALSE 时返回另一个值。通过将 OR 函数用作 IF 函数的 logical_test 参数,可测试多个不同条件(而非一个)。

    用法

    OR(logical1, [logical2], ...)

    OR函数用法具有以下参数:

    其他

    l 参数必须计算为逻辑值,如 TRUE 或 FALSE,或者为包含逻辑值的数组或引用。

    l 如果数组或引用参数中包含文本或空白单元格,则这些值将被忽略。

    l 如果指定的范围不包含逻辑值,则 OR 返回 #VALUE! 错误值。

    l 可使用 OR 数组公式来查看数组中是否出现某个值。若要输入数组公式,请按 CTRL+SHIFT+ENTER。

    案例

    案例 1

    案例 2

    下面提供了将OR函数单独使用以及与IF函数一起使用的一些常见示例。

    销售佣金计算

    下面是一个十分常见的应用场景,我们需要使用IF和OR计算销售人员是否有资格获得佣金。

    公式表示:如果总销售量大于或等于 (=) 销售目标,或者账户额大于或等于 (=) 账户目标额,则以佣金百分比乘以总销售额;否则返回 0。

    SWITCH 函数

    描述

    SWITCH 函数根据值列表计算一个值(称为表达式),并返回与第一个匹配值对应的结果。如果不匹配,则可能返回可选默认值。

    用法

    SWITCH(表达式, value1, result1, [default 或 value2, result2],…[default 或 value3, result3])

    由于函数最多可包含 254 个参数,所以最多可以使用 126 对值和结果参数。

    案例

    TRUE 函数

    描述

    返回逻辑值 TRUE。希望基于条件返回值 TRUE 时,可使用此函数。例如:

    =IF(A1=1,TRUE())

    还可直接在单元格和公式中输入值 TRUE,而不使用此函数。例如:

    =IF(A1=1,TRUE)

    如果满足条件,Excel 在两个示例中均返回 TRUE。如果不满足条件,Excel 在两个示例中均返回 FALSE。

    用法

    TRUE()

    TRUE 函数用法没有参数。

    XOR 函数

    描述

    返回所有参数的逻辑异或。

    用法

    XOR(logical1, [logical2],…)

    XOR 函数用法具有下列参数。

    ü Logical1、logical2 等 Logical 1 是必需的,后续逻辑值是可选的。您要检验的 1 至 254 个条件,可为 TRUE 或 FALSE,且可为逻辑值、数组或引用。

    其他

    l 参数必须计算为逻辑值,如 TRUE 或 FALSE,或者为包含逻辑值的数组或引用。

    l 如果数组或引用参数中包含文本或空白单元格,则这些值将被忽略。

    l 如果指定的区域中不包含逻辑值,则 XOR 返回错误值 #VALUE! 。

    l 您可以使用 XOR 数组公式检查数组中是否出现某个值。若要输入数组公式,请按 Ctrl+Shift+Enter。

    l 当 TRUE 输入的数字为奇数时,XOR 的结果为 TRUE;当 TRUE 输入的数字为偶数时,XOR 的结果为 FALSE。

    案例

    以上是所有EXCEL的逻辑函数说明语法以及使用案例。这次分享中存在哪些疑问或者哪些不足,可以在下面进行评论。如果觉得不错,可以分享给你的朋友,让大家一起掌握这些excel的逻辑函数。

  • ?

    2017年最全的excel函数大全6—日期和时间函数(上)

    九日

    展开

    上次给大家分享了《2017年最全的excel函数大全(5)——逻辑函数》,这次分享给大家日期和时间函数(上)。

    DATE 函数

    返回特定日期的序列号

    描述

    DATE 函数返回表示特定日期的连续序列号。

    用法

    DATE(year,month,day)

    DATE 函数用法具有下列参数:

    ü Year:必需。year 参数的值可以包含一到四位数字。Excel 将根据计算机正在使用的日期系统来解释 year 参数。默认情况下,Microsoft Excel for Windows 使用的是 1900 日期系统,这表示第一个日期为 1900 年 1 月 1 日。

    提示: 为避免出现意外结果,请对 year 参数使用四位数字。例如,“07”可能意味着“1907”或“2007”。因此,使用四位数的年份可避免混淆。

    · 如果 year 介于 0(零)到 1899 之间(包含这两个值),则 Excel 会将该值与 1900 相加来计算年份。例如,DATE(108,1,2) 返回 2008 年 1 月 2 日 (1900+108)。

    · 如果 year 介于 1900 到 9999 之间(包含这两个值),则 Excel 将使用该数值作为年份。例如,DATE(2008,1,2) 将返回 2008 年 1 月 2 日。

    · 如果 year 小于 0 或大于等于 10000,则 Excel 返回 错误值 #NUM!。

    ü 月:必需。 一个正整数或负整数,表示一年中从 1 月至 12 月(一月到十二月)的各个月。

    · 如果 month 大于 12,则 month 会从指定年份的第一个月开始加上该月份数。例如,DATE(2008,14,2) 返回表示 2009 年 2 月 2 日的序列数。

    · 如果 month 小于 1,则 month 会从指定年份的第一个月开始减去该月份数,然后再加上 1 个月。例如,DATE(2008,-3,2) 返回表示 2007 年 9 月 2 日的序列号。

    ü 日:必需。 一个正整数或负整数,表示一月中从 1 日到 31 日的各天。

    · 如果 day 大于指定月中的天数,则 day 会从该月的第一天开始加上该天数。例如,DATE(2008,1,35) 返回表示 2008 年 2 月 4 日的序列数。

    · 如果 day 小于 1,则 day 从指定月份的第一天开始减去该天数,然后再加上 1 天。例如,DATE(2008,1,-15) 返回表示 2007 年 12 月 16 日的序列号。

    注意: Excel 可将日期存储为连续序列号,以便能在计算中使用它们。1900 年 1 月 1 日的序列号为 1,2008 年 1 月 1 日的序列号为 39448,这是因为它与 1900 年 1 月 1 日之间相差 39,447 天。需要更改数字格式(设置单元格格式)以显示正确的日期。

    案例

    案例 1

    例如:=DATE(C2,A2,B2) 将单元格 C2 中的年、单元格 A2 中的月以及单元格 B2 中的日合并在一起,并将它们放入一个单元格内作为日期。以下案例显示了单元格 D2 中的最终结果。

    案例 2根据其他日期计算某个日期

    可以使用 DATE 函数创建基于其他单元格中日期的一个日期。例如,可以使用 YEAR、MONTH 和 DAY 函数来创建基于另一个单元格的周年纪念日期。假设,某个员工第一天上班的日期为 2016 年 10 月 1 日,则可以使用 DATE 函数创建他上班 5 周年的纪念日期:

    1. DATE 函数会创建一个日期。

    2. =DATE(YEAR(C2)+5,MONTH(C2),DAY(C2))

    3. YEAR 函数会查找单元格 C2 并从中提取“2012”。

    4. “+5”表示加上 5 年,并在单元格 D2 中创建“2017”作为周年纪念日的年。

    5. MONTH 函数从单元格 C2 中提取“3”。这将在单元格 D2 中创建“3”作为月。

    6. DAY 函数从单元格 C2 中提取“14”。这将在单元格 D2 中创建“14”作为天。

    案例 3 将文本字符串和数字转换为日期

    有时Excel的日期是无法识别的。这可能是因为数字与典型的日期不相似,也可能因为数据被设置成了文本格式。如果是这种情况,则可以使用 DATE 函数将信息转换成日期。例如,在下图中,单元格 C2 包含采用以下格式的日期:YYYYMMDD。它也被设置成了文本格式。若要将其转换成日期,则可以将 DATE 函数与 LEFT、MID 和 RIGHT 函数配合使用。

    1. DATE 函数会创建一个日期。

    2. =DATE(LEFT(C2,4),MID(C2,5,2),RIGHT(C2,2))

    3. LEFT 会在单元格 C2 中查找并从左起提取前 4 个字符。这将在单元格 D2 中创建“2014”作为转换后日期的年。

    4. MID 函数将在单元格 C2 中查找。它将从第 5 个字符开始,然后向右提取 2 个字符。这将在单元格 D2 中创建“03”作为转换后日期的月。因为 D2 的格式设置为 Date,因此“0”不包括在最终结果中。

    5. RIGHT 函数会在单元格 C2 中查找,然后从最右侧开始向左提取前 2 个字符。这将在 D2 中创建“14”作为日期的日。

    案例 4 按一定的天数加减日期

    若要按一定的天数加减日期,只需向值或包含日期的单元格引用加上或减去天数即可。

    在以下案例中,单元格 A5 包含我们想加上和减去 7 天(C5 中的值)的日期。

    DATEDIF 函数

    计算两个日期之间的天数、月数或年数。

    描述

    计算两个日期之间相隔的天数、月数或年数。警告:Excel 提供了 DATEDIF 函数,以便支持来自 Lotus 1-2-3 的旧版工作簿。在某些应用场景下,DATEDIF 函数计算结果可能并不正确。有关详细信息,请参阅本文中的“已知问题”部分。

    用法

    DATEDIF(start_date,end_date,unit)

    ü Start_date:用于表示时间段的第一个(即起始)日期的日期。 日期值有多种输入方式:带引号的文本字符串(例如 2001/1/30)、序列号(例如 36921,在商用 1900 日期系统时表示 2001 年 1 月 30 日)或其他公式或函数的结果(例如 DATEVALUE(2001/1/30))。

    ü End_date:用于表示时间段的最后一个(即结束)日期的日期。

    ü Unit:要返回的信息类型:

    其他

    l 日期存储为可用于计算的序列号。默认情况下,1899 年 12 月 31 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。

    l DATEDIF 函数在用于计算年龄的公式中很有用。

    案例

    已知问题

    “MD”参数可能导致出现负数、零或不准确的结果。若要计算上一完整月份后余下的天数,可使用如下方法:

    此公式从单元格 E17 中的原始结束日期 (5/6/2016) 减去当月第一天 (5/1/2016)。其原理如下:首先,DATE 函数会创建日期 5/1/2016。DATE 函数使用单元格 E17 中的年份和单元格 E17 中的月份创建日期。1 表示该月的第一天。DATE 函数的结果是 5/1/2016。然后,从单元格 E17 中的原始结束日期(即 5/6/2016)减去该日期。5/6/2016 减 5/1/2016 得 5 天。

    DATEVALUE 函数

    将文本格式的日期转换为序列号

    描述

    DATEVALUE 函数将存储为文本的日期转换为 Excel 识别为日期的序列号。 例如,公式=DATEVALUE(1/1/2008) 返回 39448,即日期 2008-1-1 的序列号。 即使如此,请注意,计算机的系统日期设置可能会导致 DATEVALUE 函数的结果会与此案例不同。

    如果工作表包含采用文本格式的日期并且要对这些日期进行筛选、排序、设置日期格式或执行日期计算,则 DATEVALUE 函数将十分有用。

    用法

    DATEVALUE(date_text)

    DATEVALUE 函数用法具有下列参数:

    ü Date_text 必需。代表采用 Excel 日期格式的日期的文本,或是对包含这种文本的单元格的引用。例如,用于表示日期的引号内的文本字符串 2008-1-30 或 30-Jan-2008。

    · 使用 Microsoft Excel for Windows 中的默认日期系统时,参数 date_text 必须代表 1900 年 1 月 1 日和 9999 年 12 月 31 日之间的某个日期。 如果参数 date_text的值在此范围之外, DATEVALUE函数将返回错误值 “#VALUE!。

    · 如果省略参数 date_text 中的年份部分,则 DATEVALUE 函数会使用计算机内置时钟的当前年份。 参数 date_text 中的时间信息将被忽略。

    其他

    l Excel 可将日期存储为序列号,以便可以在计算中使用它们。 默认情况下,1900 年 1 月 1 日的序列号为 1,2008 年 1 月 1 日的序列号为 39,448,这是因为它距 1900 年 1 月 1 日有 39,447 天。

    l 大部分函数都会自动将日期值转换为序列数。

    案例

    DAY 函数

    将序列号转换为月份日期

    描述

    返回以序列数表示的某日期的天数。 天数是介于 1 到 31 之间的整数。

    用法

    DAY(serial_number)

    DAY 函数用法具有下列参数:

    ü Serial_number 必需。要查找的日期。应使用 DATE 函数输入日期,或将日期作为其他公式或函数的结果输入。例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。如果日期以文本形式输入,则会出现问题。

    其他

    l Microsoft Excel 可将日期存储为可用于计算的序列号。默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。

    l 无论提供的日期值的显示格式如何,YEAR、MONTH 和 DAY 函数返回的值都是公历值。例如,如果提供的日期的显示格式是回历,则 YEAR、MONTH 和 DAY 函数返回的值将是与对应的公历日期相关联的值。

    案例

    DAYS 函数

    返回两个日期之间的天数

    描述

    返回两个日期之间的天数。

    用法

    DAYS(end_date, start_date)

    DAYS 函数用法具有以下参数。

    ü End_date 必需。 Start_date 和 End_date 是用于计算期间天数的起止日期。

    ü Start_date 必需。Start_date 和 End_date 是用于计算期间天数的起止日期。

    注意: Excel 可将日期存储为序列号,以便可以在计算中使用它们。 默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39447 天。

    其他

    l 如果两个日期参数为数字,DAYS 使用 EndDate–StartDate 计算两个日期之间的天数。

    l 如果任何一个日期参数为文本,该参数将被视为 DATEVALUE(date_text) 并返回整型日期,而不是时间组件。

    l 如果日期参数是超出有效日期范围的数值,DAYS 返回 #NUM! 错误值。

    l 如果日期参数是无法解析为字符串的有效日期,DAYS 返回 #VALUE! 错误值。

    案例

    DAYS360 函数

    以一年 360 天为基准计算两个日期间的天数

    描述

    按照一年 360 天的算法(每个月以 30 天计,一年共计 12 个月),DAYS360 函数返回两个日期间相差的天数,这在一些会计计算中将会用到。 如果财会系统是基于一年 12 个月,每月 30 天,可使用此函数帮助计算支付款项。

    用法

    DAYS360(start_date,end_date,[method])

    DAYS360 函数用法具有下列参数:

    ü Start_date、end_date 必需。 用于计算期间天数的起止日期。 如果 start_date 在 end_date 之后,则 DAYS360 函数将返回一个负数。 应使用 DATE 函数输入日期,或者将从其他公式或函数派生日期。 例如,使用函数 DATE(2008,5,23) 以返回 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。

    ü 方法 可选。 逻辑值,用于指定在计算中是采用美国方法 还是欧洲方法。

    注意:Excel 可将日期存储为序列号,以便可以在计算中使用它们。 默认情况下,1900 年 1 月 1 日的序列号为 1,2008 年 1 月 1 日的序列号为 39,448,这是因为它距 1900 年 1 月 1 日有 39,447 天。

    案例

    EDATE 函数

    返回用于表示开始日期之前或之后月数的日期的序列号

    描述

    返回表示某个日期的序列号,该日期与指定日期 (start_date) 相隔(之前或之后)指示的月份数。 使用函数 EDATE 可以计算与发行日处于一月中同一天的到期日的日期。

    用法

    EDATE(start_date, months)

    EDATE 函数用法具有以下参数:

    ü Start_date 必需。一个代表开始日期的日期。应使用 DATE 函数输入日期,或将日期作为其他公式或函数的结果输入。例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。如果日期以文本形式输入,则会出现问题。

    ü Months必需。 start_date 之前或之后的月份数。 months 为正值将生成未来日期;为负值将生成过去日期。

    其他

    Microsoft Excel 可将日期存储为可用于计算的序列号。默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。如果 start_date 不是有效日期,则 EDATE 返回 错误值 #VALUE!。 如果 months 不是整数,将截尾取整。

    案例

    EOMONTH 函数

    返回指定月数之前或之后的月份的最后一天的序列号

    描述

    返回某个月份最后一天的序列号,该月份与 start_date 相隔(之后或之后)指示的月份数。 使用函数 EOMONTH 可以计算正好在特定月份中最后一天到期的到期日。

    用法

    EOMONTH(start_date, months)

    EOMONTH 函数用法具有以下参数:

    ü Start_date 必需。一个代表开始日期的日期。应使用 DATE 函数输入日期,或将日期作为其他公式或函数的结果输入。例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。如果日期以文本形式输入,则会出现问题。

    ü Months 必需。 start_date 之前或之后的月份数。 months 为正值将生成未来日期;为负值将生成过去日期。

    注意: 如果 months 不是整数,将截尾取整。

    其他

    l Microsoft Excel 可将日期存储为可用于计算的序列号。默认情况下,1900 年 1 月 1 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。

    l 如果 start_date 不是有效日期,则 EOMONTH 返回 错误值 #NUM!。

    l 如果 start_date 加 months 产生非法日期值,则 EOMONTH 返回 错误值 #NUM!。

    案例

    HOUR 函数

    将序列号转换为小时

    描述

    返回时间值的小时数。 小时数是介于 0 ...

  • ?

    2017年最全的excel函数大全8—文本函数(下)

    念真

    展开

    上次给大家分享了《2017年最全的excel函数大全8—文本函数(中)》,这次分享给大家文本函数(下)。

    MID、MIDB 函数

    描述

    MID 返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。

    MIDB 根据您指定的字节数,返回文本字符串中从指定位置开始的特定数目的字符。

    重要:

    这些函数可能并不适用于所有语言。

    MID 适用于使用单字节字符集 (SBCS) 的语言,而 MIDB 适用于使用双字节字符集 (DBCS) 的语言。 您的计算机上的默认语言设置对返回值的影响方式如下:

    无论默认语言设置如何,函数 MID 始终将每个字符(不管是单字节还是双字节)按 1 计数。

    当启用支持 DBCS 的语言的编辑并将其设置为默认语言时,函数 MIDB 会将每个双字节字符按 2 计数。 否则,MIDB 会将每个字符按 1 计数。

    支持 DBCS 的语言包括日语、中文(简体)、中文(繁体)以及朝鲜语。

    用法

    MID(text, start_num, num_chars)MIDB(text, start_num, num_bytes)

    MID 和 MIDB 函数用法具有下列参数:

    文本必需。 包含要提取字符的文本字符串。start_num必需。 文本中要提取的第一个字符的位置。 文本中第一个字符的 start_num 为 1,以此类推。num_chars必需。 指定希望 MID 从文本中返回字符的个数。Num_bytes必需。 指定希望 MIDB 从文本中返回字符的个数(字节数)。

    备注

    如果 start_num 大于文本长度,则 MID 返回空文本 ()。如果 start_num 小于文本长度,但 start_num 加上 num_chars 超过了文本的长度,则 MID 只返回至多直到文本末尾的字符。如果 start_num 小于 1,则 MID 返回 错误值 #VALUE!。如果 num_chars 为负数,则 MID 返回 错误值 #VALUE!。如果 num_bytes 为负数,则 MIDB 返回 错误值 #VALUE!。

    案例

    NUMBERVALUE 函数

    描述

    以与区域设置无关的方式将文本转换为数字。

    用法

    NUMBERVALUE(Text, [Decimal_separator], [Group_separator ])

    NUMBERVALUE 函数用法具有下列参数。

    文本 必需。 要转换为数字的文本。Decimal_separator 可选。 用于分隔结果的整数和小数部分的字符。Group_separator 可选。 用于分隔数字分组的字符,例如,千位与百位之间以及百万位与千位之间。

    备注

    如果未指定 Decimal_separator 和 Group_separator 参数,则使用当前区域设置中的分隔符。如果 Decimal_separator 或 Group_separator 参数中使用了多个字符,则只会使用第一个字符。如果空字符串 () 被指定为文本参数,则结果为 0。文本参数中的空格(即使位于参数中间)也将被忽略。 例如,“ 3 000 ”将返回 3000。如果文本参数中多次使用小数分隔符,则 NUMBERVALUE 返回错误值 #VALUE! 。如果在文本参数中数组分隔符出现在小数分隔符之前,则将忽略数组分隔符。如果在文本参数中数组分隔符出现在小数分隔符之后,则 NUMBERVALUE 返回错误值 #VALUE! 。如果有任何参数无效,则 NUMBERVALUE 返回错误值 #VALUE! 。如果文本参数以一个或多个百分号 (%) 结束,这些百分号将用于结果计算。 如果文本参数中使用了多个百分号,则如同百分号用于公式中一样,这些百分号将累加。 例如,=NUMBERVALUE(9%%) 与公式 =9%% 返回的结果相同,都是 0.0009。

    案例

    PHONETIC 函数

    描述

    提取文本字符串中的拼音 (furigana) 字符。该函数只适用于日文版。

    用法

    PHONETIC(reference)

    PHONETIC 函数用法具有下列参数:

    引用必需。文本字符串或对单个单元格或包含 furigana 文本字符串的单元格区域的引用。

    备注

    如果 reference 为单元格区域,则返回区域左上角单元格中的 furigana 文本字符串。如果 reference 为不相邻单元格的区域,将返回错误值 #N/A。

    案例

    如果单元格 C4 中包含“

    ”,而单元格 B7 中包含“

    ”,则有:

    =PHONETIC(C4)等于“

    ”

    =PHONETIC(B7)等于“

    ”

    PROPER 函数

    描述

    将文本字符串的首字母以及文字中任何非字母字符之后的任何其他字母转换成大写。 将其余字母转换为小写。

    用法

    PROPER(text)

    PROPER 函数用法具有下列参数:

    文本必需。 用引号括起来的文本、返回文本值的公式,或者对包含要进行部分大写转换文本的单元格的引用。

    案例

    REPLACE、REPLACEB 函数

    描述

    根据指定的字符数,REPLACE 将部分文本字符串替换为不同的文本字符串。

    REPLACEB 使用其他文本字符串并根据所指定的字节数替换某文本字符串中的部分文本。

    重要:

    这些函数可能并不适用于所有语言。REPLACE 适用于使用单字节字符集 (SBCS) 的语言,而 REPLACEB 适用于使用双字节字符集 (DBCS) 的语言。 您的计算机上的默认语言设置对返回值的影响方式如下:无论默认语言设置如何,函数 REPLACE 始终将每个字符(不管是单字节还是双字节)按 1 计数。当启用支持 DBCS 的语言的编辑并将其设置为默认语言时,函数 REPLACEB 会将每个双字节字符按 2 计数。 否则,REPLACEB 会将每个字符按 1 计数。

    支持 DBCS 的语言包括日语、中文(简体)、中文(繁体)以及朝鲜语。

    用法

    REPLACE(old_text, start_num, num_chars, new_text)REPLACEB(old_text, start_num, num_bytes, new_text)

    REPLACE 和 REPLACEB 函数用法具有下列参数:

    old_text必需。 要替换其部分字符的文本。start_num必需。 old_text 中要替换为 new_text 的字符位置。num_chars必需。 old_text 中希望 REPLACE 使用 new_text 来进行替换的字符数。Num_bytes必需。old_text 中希望 REPLACEB 使用 new_text 来进行替换的字节数。new_text必需。 将替换 old_text 中字符的文本。

    案例

    REPT 函数

    描述

    将文本重复一定次数。 使用 REPT 来在单元格中填充文本字符串的大量实例。

    用法

    REPT(text, number_times)

    REPT 函数用法具有下列参数:

    Text必需。 需要重复显示的文本。Number_times必需。 用于指定文本重复次数的正数。

    备注

    如果 number_times 为 0(零),则 REPT 返回 (空文本)。如果 number_times 不是整数,将被截尾取整。REPT 函数结果的长度不能超过 32,767 个字符,否则 REPT 返回 #VALUE!。

    案例

    RIGHT、RIGHTB 函数

    描述

    RIGHT 根据所指定的字符数返回文本字符串中最后一个或多个字符。

    RIGHTB 根据所指定的字节数返回文本字符串中最后一个或多个字符。

    重要:RIGHT 适用于使用单字节字符集 (SBCS) 的语言,而 RIGHTB 适用于使用双字节字符集 (DBCS) 的语言。 您的计算机上的默认语言设置对返回值的影响方式如下:

    无论默认语言设置如何,函数 RIGHT 始终将每个字符(不管是单字节还是双字节)按 1 计数。当启用支持 DBCS 的语言的编辑并将其设置为默认语言时,函数 RIGHTB 会将每个双字节字符按 2 计数。 否则,RIGHTB 会将每个字符按 1 计数。

    支持 DBCS 的语言包括日语、中文(简体)、中文(繁体)以及朝鲜语。

    用法

    RIGHT(text,[num_chars])RIGHTB(text,[num_bytes])

    RIGHT 和 RIGHTB 函数具有下列参数:

    文本必需。 包含要提取字符的文本字符串。num_chars可选。 指定希望 RIGHT 提取的字符数。Num_bytes可选。 按字节指定要由 RIGHTB 提取的字符的数量。

    备注

    Num_chars 必须大于或等于零。如果 num_chars 大于文本长度,则 RIGHT 返回所有文本。如果省略 num_chars,则假定其值为 1。

    案例

    SEARCH、SEARCHB 函数

    描述

    SEARCH和SEARCHB函数可在第二个文本字符串中查找第一个文本字符串,并返回第一个文本字符串的起始位置的编号,该编号从第二个文本字符串的第一个字符算起。例如,若要查找字母“n”在单词“printer”中的位置,可以使用以下函数:

    =SEARCH(n,printer)

    此函数会返回4,因为“n”是单词“printer”的第四个字符。

    也可以在一个单词中搜索另一个单词。例如,以下函数:

    =SEARCH(base,database)

    会返回5,因为单词“base”是从单词“database”的第五个字符开始的。使用SEARCH和SEARCHB函数可以确定某个字符或文本字符串在另一个文本字符串中的位置,然后可使用MID和MIDB函数返回文本,或使用REPLACE和REPLACEB函数更改文本。本文中的案例 1中演示了这些函数。

    重要:

    这些函数可能并不适用于所有语言。只有在将 DBCS 语言设置为默认语言时,函数 SEARCHB 才会将每个字符按 2 个字节计数。否则,函数 SEARCHB 的行为与 SEARCH 相同,即将每个字符按 1 个字节计数。

    支持 DBCS 的语言包括日语、中文(简体)、中文(繁体)以及朝鲜语。

    用法

    SEARCH(find_text,within_text,[start_num])SEARCHB(find_text,within_text,[start_num])

    SEARCH 和 SEARCHB 函数具有下列参数:

    find_text必需。要查找的文本。within_text必需。要在其中搜索find_text参数的值的文本。start_num可选。within_text参数中从之开始搜索的字符编号。

    备注

    SEARCH和SEARCHB函数不区分大小写。如果要执行区分大小写的搜索,可以使用FIND和FINDB函数。可以在find_text参数中使用通配符(问号 (?) 和星号 (*))。问号匹配任意单个字符;星号匹配任意一串字符。如果要查找实际的问号或星号,请在字符前键入波形符 (~)。如果找不到find_text的值,则返回 错误值 #VALUE!。如果省略了start_num参数,则假设其值为 1。如果start_num不大于 0(零)或大于within_text参数的长度,则返回 错误值 #VALUE!。可以使用start_num来跳过指定数目的字符。以SEARCH函数为例,假设要处理文本字符串“AYF0093.YoungMensApparel”。若要在文本字符串的描述部分中查找第一个“Y”的位置,请将start_num设置为 8,这样就不会搜索文本的序列号部分(即本例中的“AYF0093”)。SEARCH函数从第 8 个字符开始,在下一个字符处查找在find_text参数中指定的字符,并返回数字 9。SEARCH函数总是返回从within_text参数的起始位置计算的字符的编号,如果start_num参数大于 1,则会计算跳过的字符。

    案例

    SUBSTITUTE 函数

    描述

    在文本字符串中用 new_text 替换 old_text。 如果需要在某一文本字符串中替换指定的文本,请使用函数 SUBSTITUTE;如果需要在某一文本字符串中替换特定位置处的任意文本,请使用函数 REPLACE。

    用法

    SUBSTITUTE(text, old_text, new_text, [instance_num])

    SUBSTITUTE 函数用法具有下列参数:

    文本必需。 需要替换其中字符的文本,或对含有文本(需要替换其中字符)的单元格的引用。old_text必需。 需要替换的文本。new_text必需。 用于替换 old_text 的文本。Instance_num可选。 指定要用 new_text 替换 old_text 的事件。 如果指定了 instance_num,则只有满足要求的 old_text 被替换。 否则,文本中出现的所有 old_text 都会更改为 new_text。

    案例

    T 函数

    描述

    返回值引用的文字。

    用法

    T(value)

    T 函数用法具有下列参数:

    值必需。 要测试的值。

    备注

    如果值是文字或引用文字,则 T 返回值。 如果值未引用文字,则 T 返回 (空文字)。由于 Microsoft Excel 会根据需要自动转换值,因此通常无需在公式中使用 T 函数。 提供此函数是为了与其他电子表格程序兼容。

    案例

    TEXT 函数

    描述

    TEXT函数可通过格式代码向数字应用格式,进而更改数字的显示方式。如果要按更可读的格式显示数字,或者将数字与文本或符号组合,它将非常有用。

    注意:TEXT 函数会将数字转换为文本,这可能使其在以后的计算中难以引用。最好将原始值保存在一个单元格中,然后在另一单元格中使用 TEXT 函数。随后如果需要构建其他公式,请始终引用原始值,而不是 TEXT 函数结果。

    TEXT 函数最简单的形式表示:

    =TEXT(Value you want to format, Format code you want to apply)

    下面是一些常用案例,可将其直接复制到 Excel 自行进行试验。请注意引号内的格式代码。

    注意:虽然可使用 TEXT 函数更改格式,但这不是唯一的方法。不使用公式也可更改格式,方法是:按CTRL+1(或在 Mac 上按

    +1),然后从“格式单元格”“数字”对话框中选择所需格式。

    常见方案

    TEXT函数很少单独使用,通常与其他内容配合使用。假设你想合并文本和数值,如“报告打印日期:12/03/14”或“每周收入: $66,348.72”。你可将此内容手动键入 Excel,但这违背了让 Excel 执行此操作的目的。遗憾的是,在合并文本和带格式的数字(如日期、时间、货币等)时,Excel 不知道你所希望的显示方式,因此会省去数字格式。这便是TEXT函数的价值所在,因为它能使用“格式代码”(如日期格式“YY/MM/DD”)强制 Excel 按照你所希望的方式设置值的格式。

    以下案例将显示不使用TEXT函数合并文本和数字的结果。本例中,我们使用与号() 连接一个文本字符串、一个空格 ( ) 和一个带=A2 B2的值。

    正如你看到的,Excel 删除了 B2 单元格中的日期格式。下一案例将展示 TEXT 函数如何使你应用所需的格式。

    更新的公式为:

    Cell C2:=A2 TEXT(B2,mm/dd/yy)- Date format

    TEXTJOIN 函数

    描述

    TEXTJOIN 函数将多个区域和/或字符串的文本组合起来,并包括你在要组合的各文本值之间指定的分隔符。如果分隔符是空的文本字符串,则此函数将有效连接这些区域。

    用法

    TEXTJOIN(分隔符, ignore_empty, text1, [text2], …)

    例如,=TEXTJOIN ( ,TRUE, , 太阳, 将, 升, 起、明天) 将è¿...

  • ?

    2017年最全的excel函数大全(1)——统计函数

    容容

    展开

    我从今天开始分享一些excel的所有函数大全,这次分享给大家统计类函数,使用中遇到哪个统计函数不认识,可以来这里找。我从今天开始分享一些excel的所有函数大全,这次分享给大家统计类函数,使用中遇到哪个统计函数不认识,可以来这里找。

    以上是所有excel的统计函数说明以及语法,这次分享中存在哪些疑问或者哪些不足,可以在下面进行评论。如果觉得不错,可以分享给你的朋友,让大家一起掌握这些excel的统计函数。

2017excel

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP