目录

字符串函数

条件函数

间接引用函数 Indirect

引用名称-实现级联


字符串函数

函数

示例

& 符号拼接字符串    ="我" & "爱" & "你" & "。"
    =B2 & D2 & F2 & "。"
CONCATENATE(text1, text2, ...) 拼接函数    =CONCATENATE("我", "爱", "你","。")
    =CONCATENATE(B2,D2,F2,"。")
    =CONCATENATE("今天是 ", TEXT(TODAY(),"yyyy-mm-dd"), "。")
COUNTlF(range, criteria):计算某个区域中满足给定条件的单元格数目

COUNTIF(C1,"") :值为1表示C1单元格为空

COUNTIF(B1:H3,""):统计B1到H3区域内空白单元格的个数

PHONETIC(reference|引用区域) 拼接函数    =PHONETIC(B2:F2) & "。"
REPLACE 替换函数【语法】REPLACE(old_text, start_num, num_chars, new_text)
【用途】将特定位置的字符串替换为不同的文本字符
1、start_num 从1开始计数,且必须大于1
2、如果 start_num 大于内容长度,则直接拼在结尾
SUBSTITUTE 查询替换函数语法:SUBSTITUTE(text, old_text, new_text, [instance_num])
1、instance_num 表示多次出现时,替换第几次的位置,默认替换全部
2、没有查询到时不进行替换,返回原内容
LEFT 截取函数【语法】LEFT(text, [num_chars])
【用途】从文本字符串的第一个字符开始返回指定个数的字符
1、如果 num_chars 为0,则结果为空
RIGHT 截取函数【语法】RIGHT(text, [num_chars])
【用途】从文本字符串右侧开始返回指定个数的字符
1、如果 num_chars 为0,则结果为空
MID 截取函数【语法】MID(text, start_num, num_chars)
【用途】从指定位置开始提取特定数目的字符
1、start_num 从1开始计数,且必须大于1
2、如果 start_num 大于内容长度,则返回空
FIND 查找函数查找子字符串在目标字符串中第一次出现的位置。
语法:FIND(find_text, within_text, [start_num ])
1、start_num 必须大于等于 1
2、没有找到时会返回错误值 #VALUE!
3、区分大小写
SEARCH 查找函数语法:SEARCH(find_text, within_text, [start_num ])
1、与 find 一样,但是不区分大小写
2、没有找到时会返回错误值 #VALUE!

LEN 计算字符串的长度 语法:LEN(text)

如果单元格为空,则LEN函数返回0。因此,可以利用这一特性来判断单元格是否为空。

=LEN("你好吗 !") -> 5

=IF(LEN(A1)=0, "空白", "非空白")

ISBLANK 函数检查是否引用了空单元格,返回真或假

ISBLANK(C2) :c2 单元格是否为空

IF(ISBLANK(E3), ""默认值"", E3) :e3单元格为空时,给一个默认值

doc/Excel 常用函数.xlsx · 汪少棠/material - Gitee.com。 

条件函数 & 逻辑函数

函数描述
IF 判断

语法:if(logical_text,[value_if_true], [value_if_false])
1、logical_text 结果为 true 或者不为0,则返回value_if_true,否则返回  value_if_false

2、=IF(1,"男", "女") -> 男

choose 条件函数

语法:CHOOSE(index_num, value1, [value2], [value3], [value4], [value5], ...)
1、index_num 的值与后面的 value 序号相同,则返回谁。即 index_num=1,则返回 value1,=2,则返回 value2,以此类推

2、=CHOOSE(2,"优秀","良好","较好") -> 良好

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

检查是否所有参数均为 TRUE,如果所有参数值均为 TRUE,则返回 TRUE。

=IF(AND(ISBLANK(A1), ISBLANK(B1), ISBLANK(C1)), "全部为空", "不全部为空")

检查A1、B1和C1单元格是否全部为空

OR(logical1, [logical2], ..)

如果任一参数值为 TRUE,即返回 TRUE;只有当所有参数值均为 FALSE 时才返回 FALSE。

=OR(ISBLANK(C2),ISBLANK(D2))

NOT(logical)

对参数的逻辑值求反: 参数为 TRUE 时返回 FALSE;参数为 FALSE 时返回TRUE。

=NOT(ISBLANK(C2)) :c2单元格是否不为空。

doc/Excel 常用函数.xlsx · 汪少棠/material - Gitee.com。 

间接引用函数 Indirect

1、Indirect 间接函数语法:=INDIRECT(单元格引用,[引用样式])。

2、INDIRECT 函数的引用方式有两种,一种是A1用法,一种是R1C1用法。参数1可为定义名称或文本字符串构成的数据引用区域,参数2省略不写或为TRUE/1时为A1用法,参数2为FALSE/0时为R1C1用法。

3、INDIRECT 间接引用如图所示,A1单元格内容为“蚩尤后裔”,C1单元格内容为 A1

在C4单元格输入公式 =A1,结果为“蚩尤后裔”直接引用
在C5单元格输入公式 =INDIRECT(C1),结果为“蚩尤后裔”间接引用
在 C6 单元格输入公式 =INDIRECT($C$1) ,C1 单元格的值是单元格地址或定义名称时间接引用
在C7单元格输入公式 =INDIRECT(“A1”),结果为“蚩尤后裔”间接引用
C8 单元格中的 &C2 表示取 C2单元格的值,所以合起来就是 A1,等价于 =INDIRECT(“A1”)间接引用

=INDIRECT(C1) : C1 单元格的值是单元格地址或定义名称时,不要加双引号。

=INDIRECT(“A1”):A1 单元格的值不是单元格地址与定义名称时,需要加双引号。

引用名称-实现级联

1、可以构建定义名称,然后作为 Indirect 函数的第一参数,此方法常见于制作多级联动下拉菜单。比如选择省份时,对应单元格下拉菜单出现该省份对应的市。

2、公式—>名称管理器—>新建,分别新建四个省份的定义名称,引用位置为各省份对应的下属市所在的单元格区域。

  • 名称和省份(主控)内容一致,即主控要素的选项是什么,名称就定义为什么,比如名称定义为[广东省]时,将来省份下拉框选择的是[广东]时,被控将无法级联。如果主控名称违反了名称注意事项,则需要特殊处理。
  • 范围可以是整个工作簿(此时所有Sheet页都能使用此名称),也可以只在某个Sheet页中生效,同一个范围内名称不允许重复,Sheet范围内容名称与工作簿范围的名称一样时,优先Sheet页自己的。
  • 名称注意事项:开头应为字母或下划线、不包括空格或不允许的字符、不与工作簿中的现有名称冲突。
  • 掌握手动设置级联关系对于使用 Java Apache POI 代码创建会更容易理解。

3、选择省份下面的单元格,点击数据—>数据验证—>设置—>允许选择序列—>来源设置省份 =$A$1:$C$1。

4、逐个选择市下面的单元格,设置让他们关联前面的省份,以F4单元格为例,点击数据—>数据验证—>设置—>允许选择序列—>来源设置 =INDIRECT($E$4),同理 F5 的来源 =INDIRECT($E$5)

  • 省份下面的单元格无论是否是下拉框都没有关系,即便是手动输入,只要内容是定义好的名称,则后面就会进行联动。

5、上面是简单版本的,所有数据都放在了同一个Sheet页中,主要用于方便理解,实际中通常会将数据维护在其它Sheet页中并进行影藏,只展示级联关系,下面演示 Sheet1 中展示级联关系,主被控要素放在Sheet2 中。

 要素关联关系级联.xlsx

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐