内容导航:


一、怎么提取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如何提取前十名数据


的确表不规范,现在这个结构方式的表,大概有这么几种方法来处理:

  1. 在Power Query将4个区域添加4个仅连接的表格,再将4个仅连接追加为一个新的查询后来处理。

  2. 用SQL将4个区域连接成一个区域进行查询。

  3. 用多重合并计算区域的数据透视表来处理。

  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即可。