一、怎么提取excel单元格中前20个字节
方法一
假设这个数据写在A1单元格,则在另一个单元格写入公式
=LEFTB(A1,20)
LEFTB
基于所指定的字节数返回文本字符串中的第一个或前几个字符。此函数用于双字节字符。
语法
LEFTB(text,num_bytes)
Text 是包含要提取字符的文本字符串。
Num_bytes 按字节指定要由 LEFTB 所提取的字符数。
方法二
再或者公式写成
=MIDB(A1,1,20)
MIDB
返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。此函数用于双字节字符。
语法
MIDB(text,start_num,num_bytes)
Text 是包含要提取字符的文本字符串。
Start_num 是文本中要提取的第一个字节的位置。文本中第一个字节的 start_num 为 1,以此类推。
Num_bytes 指定希望 MIDB 从文本中返回字符的个数(按字节)。
说明
- 如果 start_num 大于文本长度,则 MID 返回空文本 ("")。
- 如果 start_num 小于文本长度,但 start_num 加上 num_chars 超过了文本的长度,则 MID 只返回至多直到文本末尾的字符。
- 如果 start_num 小于 1,则 MID 返回错误值 #VALUE!。
如果 num_bytes 是负数,则 MIDB 返回错误值 #VALUE!。
二、excel如何提取前十名数据
的确表不规范,现在这个结构方式的表,大概有这么几种方法来处理:
在Power Query将4个区域添加4个仅连接的表格,再将4个仅连接追加为一个新的查询后来处理。
用SQL将4个区域连接成一个区域进行查询。
用多重合并计算区域的数据透视表来处理。
公式的方法。
下面介绍公式的方法,如图,先找出前10个NG率:
P3=LARGE(CHOOSE(COLUMN(A:D),$C$3:$C$28,$F$3:F28,$I$3:$I$28,$L$3:$L$28),ROW(1:1))
同时按Ctrl+Shift+Enter三键输入数组公式。下拉到P12
O3=INDIRECT(TEXT(MAX(IF($C$3:$L$28=$P3,ROW($3:$28)*100+COLUMN($C:$L)-2,0)),"r0c00"),)
同时按Ctrl+Shift+Enter三键输入数组公式,下拉到O12
将O3的公式复制Q3中,将公式中的COLUMN($C:$L)-2修改成COLUMN($C:$L)-1后,同时按Ctrl+Shift+Enter三键输入数组公式,下拉到Q12
PS:如果前10名的NG有重复数据,用公式的方法会复杂很多,而前3种方法则基本上没差别。如果前10名中有NG率为0的,那么因为NG笔数也有为0的,上面公式中后两个公式就得不到正确的结果,所以用前3种方法比较稳妥。
另外 ,提问中的结果中用了“累计”这个词,不知与数据源的相关标题是否一致,如果不是一个意思,那么,上面回答的就全理解错了。还需要补充累计的含义是什么。
三、excel怎么提取数据前几位
可以用LEFT函数。
1、以excel2010版本为例,如下图所示,有一列数据,要取前几个数;
2、在右边的单元格B2输入函数LEFT,指从一个文本字符串的第一个字符开始返回指定个数的字符;
3、该函数第一个条件区域指目标参数,这里是左边的A1,第二个参数是指要取的几个数,这里取前面的3个,即填3 ;
4、填完后按enter键,即可得到取A1单元格数据前三个数的值了;
5、把公式下拉填充即可得到取A列数据的前三个数了,如果要取前5个数,把3改为5即可。