ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 香川群子

[分享] If …… Then 条件判断语句 的科普帖

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-7-9 18:16 | 显示全部楼层
本帖已被收录到知识树中,索引项:数据类型和基本语句
香川群子 发表于 2014-7-9 15:07
下面是And运算的分解:
   
    If a And b Then do1

“另外一个诀窍是: 如果a条件出现概率比b条件出现概率高,那么a放在外层第1个,反之亦然。”
精彩,精明的应用,重要的经验!

TA的精华主题

TA的得分主题

发表于 2014-7-9 18:23 | 显示全部楼层
香川群子 发表于 2014-7-9 15:13
继续:

    If a And b Then do1 Else do2

    If a Then
        If b Then
            do1
        Else
            do2
        End If
    Else
        do2
    End If
  粗糙的分析下:第一次判断a时,4种情况被分为2+2,a真b真、a真b假一组,a假b真、a假b假一组;
  第二次判断时,2种情况分为1+1,b真、b假。
  有点你之前讲过的二分法的意思……
  我只是补记一下学习心得……
  精彩是在平凡的基础上的……
  在严密的逻辑上,逐步会诞生出精彩的结论,该帖每一楼都很重要、必要,从第1楼开始就很好,有了一种亲切的文风、明晰的思路,易于为人接受的总是好的,更能反映出写作者的水平、诚心!

TA的精华主题

TA的得分主题

发表于 2014-7-9 18:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川群子 发表于 2014-7-9 16:17
补充,

在Access数据库操作中更为常见的 [变量结果]=IIf([条件],[真],[伪])

“但是这样一来,计算效率略低还不算太大的问题,
问题在于,如果某个计算表达式可能产生错误,则整个语句就出错而导致代码运行被迫停止了。”

见微知著!

TA的精华主题

TA的得分主题

发表于 2014-7-9 18:28 | 显示全部楼层
香川群子 发表于 2014-7-9 16:25
我认为,t = IIf(a,b,c)的使用应该是:

1. 为了适当地简化、美化代码,并且计算效率的影响可以忽略不计时 ...

“原则上不应该在For循环中使用IIf(a<b,a,b)函数。”

这条应当记住,与大家共享!

TA的精华主题

TA的得分主题

发表于 2014-7-13 18:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好贴,收藏!

TA的精华主题

TA的得分主题

发表于 2014-7-13 20:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
“If …… Then 的条件判断语句很常用,但很多人并不深究…… 有必要进一步阐释一下,尤其是初学者,应该抽时间看一看,以便提高代码效率,或提高代码可读性。”
基础才是最重要的,知其然,知其所以然,高手不止于博学,更在于精通,信手拈来,摘叶飞花……
谢谢 香川群子 的分享与讲解,收藏重新温习加固

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-7-13 21:39 | 显示全部楼层
Or是相当于两个逻辑值的 + 运算,
And是相当于两个逻辑值的 * 运算
总结的可以

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-7-13 23:30 | 显示全部楼层
谢谢 香川群子 的分享与讲解,学习了

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-14 10:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川群子 发表于 2014-7-9 14:13
接下来,继续介绍【条件】部分的内容。

If 语句需要的【条件表达式】,是可以通过逻辑计算得到Boolean布 ...

补充,排序规则:

MicrosoftExcel 使用特定的排序顺序来排列数据,它是根据单元格中的数值而不是格式。

A-Z升序时,Excel按以下规则排序:
(在按Z-A降序排序时,按同样的规则但是倒序返回结果,并且空单元格总是排在最后)

中文字的排序 在 Excel10 中提供了两种排序方式:
依照字的【笔划】大小依序排序/以及依字的【读音】的顺序做排序。

【笔画】依照字的笔划大小依序排序时的规则:
1. 由最小的笔划到最大的笔划进行排序。
2. 如果笔划相同,则依照内码做排序,由最小的内码到最大的内码进行排序。

【读音】依字音的顺序做排序:
1. 字音的顺序是依照注音符号的声母与韵母的次序排列。先声母后韵母。
声母 ─ ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓ ㄔ  ㄕ  ㄖㄗㄘㄙ
               b p m f  d t  n  l  g k h  j  q x zh ch sh  r  z  c  s
韵母 ─ ㄚㄛㄜㄝㄞㄟㄠ ㄡ  ㄢ   ㄣ   ㄤ   ㄥ   ㄦ  一 ㄨ ㄩ
               a o e  ie ai ei ao ou an en ang eng er  i  u  v

1. 先依照声母的次序排列;
2. 声母相同时,再依韵母的次序排列;
3. 没有声母而只有韵母的,都排在有声母(最后一个声母是ㄙ s)拼音的后面,且只按照韵母的顺序排列。

4. 声母与韵母都相同,则按照阴平声、阳平声、上声、去声、轻声的次序排列。
5. 如果字的所有的注音符号都相同,则最后要依照笔划的大小作排序。


…………
中文字与英文字及数字间的排序规则:
以数值、英文字、中文字的顺序进行排序,即先排数值,再排英文字,最后排中文字。

其中
① 数值排序:
数字从最小的负数到最大的正值进行排序。

② 英文字母排序:
在根据英文字母先后顺序对文字项进行排序时,Excel 会由左至右一个字符一个字符地进行排序。
例如一个单元格中是文字 "A100" ,将排在含有 "A1" 的单元格的后面,以及含有 "A11" 的单元格的前面。

③ 文字以及文本型数字的文字,按下面的顺序排序:
0 1 2 34 5 6 7 8 9 (空格) ! "# $ % & ( ) * , . / : ; ? @ [ \ ] ^ _ ` { | } ~ + < = >
A B C D E F GH I J K L M N O P Q R S T U V W X Y Z
逗号 (') 和连字符 (-) 会被略过。但有一个情况例外:如果两个字符串除了连字符不同外其余都相同的,则带连字符的文字排在后面。

④ 逻辑值
在逻辑值中,FALSE 排在 TRUE 之前。

⑤ 错误值
所有的错误值都相同。

⑥ 空单元格
空单元格通常排在最后,不论排序要求是升序还是降序。

…………
以上

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-14 10:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 香川群子 于 2014-7-14 10:53 编辑

连字符-不直接参与排序的例子:
从小到大为:
aa
'aa
-aa
a'a
a-a
aa'
aa-
ab
'ab
-ab
'a'b
a-b
'ab'
ab-
ac
'ac
-ac
'a'c
a-c
'ac'
ac-
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 20:41 , Processed in 0.039980 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表