EXCEL函数篇01 按间隔符提取数据,实现分列功能

如下图所示,A列是数据源,每个单元格的数据以符号“,”作为间隔组合在一起,例如:“苹果,香蕉,苹果”。

一、单元格同时存放两个字符

第一字符:=LEFT(A2,FIND(",",A2)-1)

第二字符:=RIGHT(A2,FIND(",",A2)-1)

LEFTFIND函数发现"/"在A2单元格中首次出现的位置,然后使用LEFT函数从左向右提取该长度的字符,即为结果。

二、单元格同时存放三个字符

第一字符:=LEFT(A2,FIND(",",A2)-1)

第二字符:=TRIM(MID(SUBSTITUTE(A3,",",REPT(" ",100)),100,100))

第三字符:=RIGHT(A2,FIND(",",A2)-1)

和第2个公式有些相似,依然先使用SUBSTITUTE函数,将A2单元格中的","替换为100个空格,这样就将不同的值划分到了由空格间隔而成的多个小房子里,再使用MID函数从指定区段取值,最后使用TRIM函数消除空格。

SUBSTITUTE(A2,",",REPT(" ",100)),这部分公式将A2中的","替换为100个空格,然后RIGHT函数从右边提取100个字符,这100个字符必然包括了最后一个","后的数据以及大部分的空格,因此最后用TRIM函数清除空格即为结果。

三、单元格存放三个以上字符

B2输入以下公式,向右向下复制填充至B2:E5区域,即可得出结果:

=TRIM(MID(SUBSTITUTE($A2,",",REPT(" ",100)),COLUMN(A1)*100-99,100))

该公式和第3个公式类似,只是使用COLUMN(A1)*100-99取动态区间,随着公式的向右拖动,依次提取第1~101~201个字符起的

100个字符结果,最后依然使用TRIM函数清理空格。

 

小贴士:

1、TRIM+MID+SUBSTITUTE是一个非常经典的字符串处理函数套路,尤其擅长与处理间隔符的问题,这是完全可以用快速填充或者分列功能,没必要非函数不可。但是函数和基础操作的区别在于,函数处理问题更加自动化、模块化;它的计算结果可以直接嵌套在其它函数中继续使用,避免手工反复操作。

2、原理补充:

LEFT函数:

从一个文本字符串的第一个字符开始返回指定个数的字符。

函数结构:

=LEFT(字符串,[提取几个字符])

第二参数如果忽略,则默认为1。

RIGHT函数:

从一个文本字符串的最后一个字符开始返回指定个数的字符。

函数结构:

=RIGHT(字符串,[提取几个字符])

同样,第二参数如果忽略,则默认为1。

MID函数:

从文本字符串中指定的起始位置起,返回指定长度的字符。

函数结构:

=MID(字符串,开始提取的位置,提取几个字符)

 =MID(A3,5,3)

注意:LEFT/RIGHT/MID均为文本处理函数,提取的结果亦为文本,若需参与计算,需转化为数值。 

FIND函数:

返回一个字符串在另一个字符串中出现的起始位置(区分大小写)

函数结构:

=FIND(要查找的字符,被查找的字符,[从第几个字符开始查找])

如果第三参数忽略,则默认为1,即从第一个字符开始查找。

 =FIND("-",A3,5)

 

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用以下步骤在 Matlab 中将 Excel 数据按行拆分并绘制坐标图: 1. 在 Matlab 中导入 Excel 文件,可以使用 `xlsread` 函数。 2. 读取 Excel 文件中的数据,并将其存储为一个矩阵。 3. 使用 `strsplit` 函数将每行数据分隔符进行拆分,并将其存储为一个单元格数组。 4. 将单元格数组转换为数字数组,并将其存储为一个矩阵。 5. 使用 `plot` 函数绘制坐标图。 以下是一个示例代码,假设你的 Excel 文件名为 `data.xlsx`,其中数据以逗作为分隔符: ```matlab % 导入 Excel 文件 [num,txt,raw] = xlsread('data.xlsx'); % 将数据存储为矩阵 data = num(:, 1:end); % 将每行数据按逗分隔并存储为单元格数组 splitData = cell(size(data)); for i = 1:size(data, 1) splitData{i, :} = strsplit(txt{i+1, 1}, ','); end % 将单元格数组转换为数字数组,并存储为矩阵 splitData = cellfun(@str2double, splitData, 'UniformOutput', false); splitData = cell2mat(splitData); % 绘制坐标图 plot(splitData(:, 1), splitData(:, 2), 'o-'); xlabel('x轴'); ylabel('y轴'); title('坐标图'); ``` 注意,上述代码中 `txt` 变量是用于存储 Excel 文件中的文本数据的,因此需要将其与数字数据区分开来。在示例代码中,我们假设文本数据位于 Excel 文件的第一列,并且使用 `strsplit` 函数按逗拆分每一行数据。如果你的 Excel 文件中的数据以其他分隔符分隔,请将 `strsplit` 函数的参数相应地进行更改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值