首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过指定索引位置检索值

通过指定索引位置检索值
EN

Stack Overflow用户
提问于 2019-11-04 15:39:39
回答 2查看 25关注 0票数 0

我有一个类似下面的专栏:

代码语言:javascript
运行
AI代码解释
复制
1235hytfgf ui
3434jhjhjh ui
6672jhjkhj ty

我必须将前四个字符命名为数字;接下来的6个字符作为类型,最后2个字符作为id;我应该使用哪个函数来说明从index(0-3)开始应该是数字,而index(4-9)应该是type:

EN

回答 2

Stack Overflow用户

发布于 2019-11-04 16:22:11

LEFT()、RIGHT()和MID()是三个用于提取字符串部分的函数。

如果您的数据是从B2开始的,那么您可以在一个空单元格中使用以下公式来提取前4个字符。

代码语言:javascript
运行
AI代码解释
复制
LEFT(B2,4)

现在,这将拉出前4个字符,并将它们保留为字符。如果您希望将字符串形式的数字转换为数字值,那么转换它的一种简单方法是通过一个不改变其值的数学操作来发送它。*1、+0、-0、/1和--都有效。您的公式可能如下所示:

代码语言:javascript
运行
AI代码解释
复制
--LEFT(B2,4)
LEFT(B2,4)+0
LEFT(B2,4)*1
LEFT(B2,4)/1
LEFT(B2,4)-0

要抓取字符串的中间部分,请使用MID函数。由于您已经知道要拉的字符串的起始位置和长度,因此可以将这些信息硬编码到您的公式中,它将如下所示:

代码语言:javascript
运行
AI代码解释
复制
MID(B2,5,6)

5是开始拉取字符的起始位置,6是要拉取的字符串的长度或要拉取的字符数。

要获得最后两个字符,与第一个函数类似,使用RIGHT()。公式将如下所示:

代码语言:javascript
运行
AI代码解释
复制
RIGHT(B2,2)
票数 2
EN

Stack Overflow用户

发布于 2019-11-04 22:07:16

如果您正在处理大量数据,例如超过数千条记录,请尝试在excel中执行power查询。

请参考此article以了解如何在您的Excel版本上使用Power Query。它在Excel2010 Professional Plus和更高版本的中可用。我的演示是使用Excel2016

步骤如下:

将您的单列数据添加到string;

  • Highlight desired;

  • Renamed Editor;

  • Highlight列中,使用

  • Columns函数并选择By Digit to Non-Digit,它将从第二列中分离第一个nth数字字符,再次使用Split Columns函数并选择By Delimiter并使用空格作为分隔符,它将分隔类型和id作为列的分隔符,您应该具有如下内容:<代码>H222<代码>G223

然后,您可以将Close&输出加载到新的工作表中(默认情况下)。

下面是后台的power查询M代码,仅供参考。所有使用的函数都可以在GUI中使用,因此应该很容易执行。

代码语言:javascript
运行
AI代码解释
复制
let
    Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
    #"Split Column by Character Transition" = Table.SplitColumn(#"Changed Type", "Column1", Splitter.SplitTextByCharacterTransition({"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"Column1.1", "Column1.2"}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Split Column by Character Transition", "Column1.2", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column1.2.1", "Column1.2.2"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.1", Int64.Type}, {"Column1.2.1", type text}, {"Column1.2.2", type text}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"Column1.1", "numbers"}, {"Column1.2.1", "type"}, {"Column1.2.2", "id"}})
in
    #"Renamed Columns"

如果你有任何问题,请告诉我。干杯:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58696638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档