Excel:公式中的这些特殊数字
19E+307
9E+307是科学计数法表示的一个数字,就简单理解成是Excel支持的一个很大的数字就可以了。
用法示例:
=LOOKUP(9E+307,A:A)
根据LOOKUP函数的性质,提取A列最后一个数字。
24^8或65536或100
4^8=4的8次方=65536,也是一个比较大的数字。
因为2003版最大支持65536行,所以以前会经常看到这个数字。一般用途是排除错误值,当公式下拉超过实际返回数据行数后显示空值。
用法示例:
=INDEX(A:A,SMALL(IF(A$2:A$5>80,ROW(A$2:A$5),4^8),ROW(A1)))&""
公式意思是将A列大于80的数值顺序输出来。
因为原始数据一共有2个大于80,当公式下拉到第3个单元格时,因为已经没有要输出的数据了,所以就引用了A列的第4^8(65536)个单元格(一个用不到的空单元格),这样就返回了空值。
如果原始数据一共就80多行,那么第100行就是用不到的空单元格,公式中的4^8也可以替换成100。
31和0
这两个数字用法实在是太多了。
比如:0可以在判断的时候当FALSE用,可以用某些文本数字+0变成数值,用-(0&mid函数提取出的空)可以把空值转化成0避免出现错误值……
1可以在判断的时候当TRUE,1可以当做1天24小时来计算时间,1可以是比0大的数字被用在Lookup(1,0/条件判断,数据)这样的组合里……还是碰到相关函数公式再单独研究其用法吧。
关于0的使用,建议到Excelhome函数版去查找一个《“0”活多变的公式与格式》的帖子。
41/17或5^19或5/19等等
这几个数字有一个特点,就是运算返回的值里面包括0~9所有的10个数字。
比如:1/17=0.0588235294117647,5^19=19073486328125,5/19=0.263157894736842。
这个一般用于FIND函数在单元格中查找数字时避免出现错误值。
用法示例:
=MIN(FIND(ROW(1:10)-1,A2&1/17))
这个公式用于查找A2单元格第一个数字出现的位置。
ROW(1:10)-1返回{0;1;2;3;4;5;6;7;8;9},然后FIND({0;1;2;3;4;5;6;7;8;9},A2&1/17)查找0~9分别在A2&1/17中出现的位置,避免了查找某个A2中本来没有的数字出错。
比如A2单元格中不包含1,那么FIND查找1时会出错。
如果A2包含负数,可以用下面的公式来完成。
用A2&-1/17
=MIN(FIND(LEFT(ROW($1:$11)-2),A2&-1/17))
5
99是一般用在文本函数中的,也充当一个大数字的角色。
用法示例1:
=MID(A2,3,99)
这个MID函数返回A2单元格中第3个字符后的所有字符。因为不确定A2单元格字符一共多少个,所以就用99来代替了。
也就是只要第3个字符后面的字符不超过99个,就都能正确提取出来。
用法示例2:
=COUNT(--MID(A2,ROW($1:99),1))
这里的--MID()也可以直接用-MID(),前者返回的是正数,后者返回的是负数。
这个公式返回A2单元格中数字的个数(不考虑更复杂情况),和上面一样,不确定A2有多少个字符,因此从A2的第1-99个字符起分别取一个字符,将A2单元格文本每个字符拆开,MID函数部分返回:
={"超";"人";"4";"5";"9";……;""}
这里的99是否可以替换成其他数字呢?
比如说100,200?当然可以,只要超过A2单元格字符长度即可。
为啥弄个99呢,因为99是最大的两位数,应该是想当初“丧心病狂”的既缩短公式长度又保证不出错的用法:)由于99前面没有加$,如果下拉会变成ROW($1:100),ROW($1:101)等。
61%%,1%,10^4,10^6或10000等
这些数字一般是用来将某些数值扩大成原来的1万倍,100倍,或者变成原来值的万分之一,百分之一等。
用法示例:
=INDEX(A$2:A$4,MOD(LARGE(B$2:B$4/1%%+ROW($1:$3),ROW(A1)),10^4))
这个公式根据B列成绩从小到大输入A列的姓名。B$2:B$4/1%%+ROW($1:$3),其中B$2:B$4/1%%将分数变成原来的1万倍,再加上对应的【Excel工作表行号-1】仍然不改变B列数据本来的排序。
但是这样就将分数和行号信息连接在了一起。
B$2:B$4/1%%+ROW($1:$3)生成:{83;770002;920003}后面四位代表行号信息。
然后用LARGE从小到大输入,再将输出的值求对10^4的余数就得到了行号信息,然后用INDEX从原数据区域提取出来。
例如最大的是LARGR({83;770002;920003} ,row(A1))
返回920003,920003再取10^4的余数就是3,也就是最大值92对应的行号信息,然后用INDEX提取出来即可。
71和24
Excel里,时间和日期都是数字,可以显示成不同的样式。
1代表1天,代表24个小时,代表86400秒等等。
用法示例:
A2是上班时间,B2是下班时间,C2输入B2-A2得到的0.38代表0.38天。
如果C2设置成时间格式,可以返回实际时常是9个小时。
如果要显示小时数,而不是以9:00这种格式显示,可以再乘以24:
81900/4/3或类似1900年开头的日期数据
这种返回值一般是两个日期减差或者一个不大的数字显示成了日期格式。
用法示例:
两个日期相减期望得到相隔的天数,但是由于C2单元格也是日期格式,所以就显示成了1900/4/3这种,其实结果是94天。
Excel从1900年1月1日起算1,1900年1月2日算2,依次类推。因为单元格返回数值是94,显示成日期格式就成了1900年4月3日。
更改C2单元格数据格式,显示成数值即可:
942,771或者其他4万多、3万多的数字
这个和上面的类似,一般是某个日期显示成了数值格式。
比如:
9E+307是科学计数法表示的一个数字,就简单理解成是Excel支持的一个很大的数字就可以了。
用法示例:
=LOOKUP(9E+307,A:A)
根据LOOKUP函数的性质,提取A列最后一个数字。
24^8或65536或100
4^8=4的8次方=65536,也是一个比较大的数字。
因为2003版最大支持65536行,所以以前会经常看到这个数字。一般用途是排除错误值,当公式下拉超过实际返回数据行数后显示空值。
用法示例:
=INDEX(A:A,SMALL(IF(A$2:A$5>80,ROW(A$2:A$5),4^8),ROW(A1)))&""
公式意思是将A列大于80的数值顺序输出来。
因为原始数据一共有2个大于80,当公式下拉到第3个单元格时,因为已经没有要输出的数据了,所以就引用了A列的第4^8(65536)个单元格(一个用不到的空单元格),这样就返回了空值。
如果原始数据一共就80多行,那么第100行就是用不到的空单元格,公式中的4^8也可以替换成100。
31和0
这两个数字用法实在是太多了。
比如:0可以在判断的时候当FALSE用,可以用某些文本数字+0变成数值,用-(0&mid函数提取出的空)可以把空值转化成0避免出现错误值……
1可以在判断的时候当TRUE,1可以当做1天24小时来计算时间,1可以是比0大的数字被用在Lookup(1,0/条件判断,数据)这样的组合里……还是碰到相关函数公式再单独研究其用法吧。
关于0的使用,建议到Excelhome函数版去查找一个《“0”活多变的公式与格式》的帖子。
41/17或5^19或5/19等等
这几个数字有一个特点,就是运算返回的值里面包括0~9所有的10个数字。
比如:1/17=0.0588235294117647,5^19=19073486328125,5/19=0.263157894736842。
这个一般用于FIND函数在单元格中查找数字时避免出现错误值。
用法示例:
=MIN(FIND(ROW(1:10)-1,A2&1/17))
这个公式用于查找A2单元格第一个数字出现的位置。
ROW(1:10)-1返回{0;1;2;3;4;5;6;7;8;9},然后FIND({0;1;2;3;4;5;6;7;8;9},A2&1/17)查找0~9分别在A2&1/17中出现的位置,避免了查找某个A2中本来没有的数字出错。
比如A2单元格中不包含1,那么FIND查找1时会出错。
如果A2包含负数,可以用下面的公式来完成。
用A2&-1/17
=MIN(FIND(LEFT(ROW($1:$11)-2),A2&-1/17))
5
99是一般用在文本函数中的,也充当一个大数字的角色。
用法示例1:
=MID(A2,3,99)
这个MID函数返回A2单元格中第3个字符后的所有字符。因为不确定A2单元格字符一共多少个,所以就用99来代替了。
也就是只要第3个字符后面的字符不超过99个,就都能正确提取出来。
用法示例2:
=COUNT(--MID(A2,ROW($1:99),1))
这里的--MID()也可以直接用-MID(),前者返回的是正数,后者返回的是负数。
这个公式返回A2单元格中数字的个数(不考虑更复杂情况),和上面一样,不确定A2有多少个字符,因此从A2的第1-99个字符起分别取一个字符,将A2单元格文本每个字符拆开,MID函数部分返回:
={"超";"人";"4";"5";"9";……;""}
这里的99是否可以替换成其他数字呢?
比如说100,200?当然可以,只要超过A2单元格字符长度即可。
为啥弄个99呢,因为99是最大的两位数,应该是想当初“丧心病狂”的既缩短公式长度又保证不出错的用法:)由于99前面没有加$,如果下拉会变成ROW($1:100),ROW($1:101)等。
61%%,1%,10^4,10^6或10000等
这些数字一般是用来将某些数值扩大成原来的1万倍,100倍,或者变成原来值的万分之一,百分之一等。
用法示例:
=INDEX(A$2:A$4,MOD(LARGE(B$2:B$4/1%%+ROW($1:$3),ROW(A1)),10^4))
这个公式根据B列成绩从小到大输入A列的姓名。B$2:B$4/1%%+ROW($1:$3),其中B$2:B$4/1%%将分数变成原来的1万倍,再加上对应的【Excel工作表行号-1】仍然不改变B列数据本来的排序。
但是这样就将分数和行号信息连接在了一起。
B$2:B$4/1%%+ROW($1:$3)生成:{83;770002;920003}后面四位代表行号信息。
然后用LARGE从小到大输入,再将输出的值求对10^4的余数就得到了行号信息,然后用INDEX从原数据区域提取出来。
例如最大的是LARGR({83;770002;920003} ,row(A1))
返回920003,920003再取10^4的余数就是3,也就是最大值92对应的行号信息,然后用INDEX提取出来即可。
71和24
Excel里,时间和日期都是数字,可以显示成不同的样式。
1代表1天,代表24个小时,代表86400秒等等。
用法示例:
A2是上班时间,B2是下班时间,C2输入B2-A2得到的0.38代表0.38天。
如果C2设置成时间格式,可以返回实际时常是9个小时。
如果要显示小时数,而不是以9:00这种格式显示,可以再乘以24:
81900/4/3或类似1900年开头的日期数据
这种返回值一般是两个日期减差或者一个不大的数字显示成了日期格式。
用法示例:
两个日期相减期望得到相隔的天数,但是由于C2单元格也是日期格式,所以就显示成了1900/4/3这种,其实结果是94天。
Excel从1900年1月1日起算1,1900年1月2日算2,依次类推。因为单元格返回数值是94,显示成日期格式就成了1900年4月3日。
更改C2单元格数据格式,显示成数值即可:
942,771或者其他4万多、3万多的数字
这个和上面的类似,一般是某个日期显示成了数值格式。
比如:
Excel:公式中的这些特殊数字的更多相关文章
- Excel公式中双引号和单引号输入和显示以及函数的选择确认
[Excel中显示双引号] 1.直接输入双引号“”或单引号“ 2.工式中显示双引号需输入“”“”“”(六个引号)或单引号需输入“”“”(四个引号) [Excel中快速确认已选择的函数] 1.用键盘的上 ...
- [每天解决一问题系列 - 0004] Excel 公式中拼接字符串
问题描述: 之前很少用excel的formula,今天用户发过来一个文件,里边存储了很多字段对应的编号.想把这些生成我想要的格式,然后导入代码中,当然可以使用第三方的excel操作库来做.最简单直接的 ...
- Excel公式中问题-记住不要忽略空格!
总结一下之前犯得愚蠢的小问题: 程序:每日报表:从DB下载数据填充到excel,包括3个sheet,sheet1:总结<模板,公式填充,数据源为sheet2,sheet3>;sheet2: ...
- Excel公式中使用动态计算的地址
例:统计A列第四行开始,到公式所在行的前一行的非空白行的个数: =COUNTA(A4:INDIRECT(ADDRESS(ROW()-,COLUMN())))
- EXCEL公式中如何表示回车符?
问题: 将 id credttm cdno cdamt cashbrid cashrole note 转换为 "id credttm cdno cdamt cashbrid ca ...
- java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式和其他常见Excel中数据转换问题
当使用POI处理excel的时候,遇到了比较长的数字,虽然excel里面设置该单元格是文本类型的,但是POI的cell的类型就会变成数字类型. 而且无论数字是否小数,使用cell.getNumberi ...
- Excel 2007中自定义数字格式前要了解的准则
要在Excel 2007中创建自定义数字格式,首先应了解自定义数字格式的准则,并从选择某一内置数字格式开始.然后,可以更改该格式的任意代码部分,从而创建自己的自定义数字格式. 数字格式最多可包含四个代 ...
- Excel中带字母的数字序列自增实现方法
示例: 在A1单元格输入以下公式,然后向下填充公式 =".mr"&ROW()&" {margin-right: "&ROW()& ...
- Excel公式错误提示啥意思?
1.#####!返回的结果超出了单元格的宽度:或者单元格的日期时间公式产生了一个负值. 2.#VALUE!使用了错误的参数或运算对象类型. 3.#DIV/O!当公式被零除时产生此错误. 4.#NAME ...
随机推荐
- python 穷举法 算24点(史上最简短代码)
本来想用回溯法实现 算24点.题目都拟好了,就是<python 回溯法 子集树模板 系列 -- 7.24点>.无奈想了一天,没有头绪.只好改用暴力穷举法. 思路说明 根据四个数,三个运算符 ...
- Dynamics CRM2016 导入数据格式之xlsx的应用
在CRM中导入数据中新增加了一个xlsx格式,这个在之前的版本(2013中没有,2015不清楚是否有)中是没有的 本篇的目的就是为了提醒各位,不要把这个格式和csv的导入功能混淆,因为xlsx格式的用 ...
- service手动实例化(new)导致类中的spring对象无法注入的问题解决
下面说的这个画横线的可能是错误的,因为我之前用controller继承父类的注解对象的时候成功了,所以可能这次的唯一原因就是 不该把本该从ioc容器中拿出的对象通过new的方式实例化,至于继承注解对象 ...
- 设计模式 笔记 原型模式 prototype
//---------------------------15/04/07---------------------------- //prototype 原型模式--对象创建型模式 /* 1:意图: ...
- Error when Building GPU docker image for caffe: Unsupported gpu architecture 'compute_60'
issue: Error when Building GPU docker image for caffe: Unsupported gpu architecture 'compute_60' rea ...
- .NET Core 开发之旅 (1. .NET Core R2安装教程及Hello示例)
前言 前几天.NET Core发布了.NET Core 1.0.1 R2 预览版,之前想着有时间尝试下.NET Core.由于各种原因,就没有初试.刚好,前几天看到.NET Core发布新版本了,决定 ...
- cadence allegro 封装原点修改
打开 dra文件后 在菜单栏 setup - change drawing origin 在命令栏输入 新的参考点位置 如想更改新坐标位置为 1,2 .输入 x 1 2
- React笔记-事件注册
事件机制 本系列以React v16.8.3为基础进行源码分析 React事件主要分为两部分: 事件注册与事件分发.下面先从事件注册说起. 事件注册 假设我们的程序如下: <!DOCTYPE h ...
- muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制
目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...
- ABP中文文档及源码说明
目录 ABP.ModuleZero(ABP自带的一套用户模块) 版本管理(Edition) 特性管理(Feature)