получение значений путем указания позиции индекса - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть столбец, который выглядит примерно так:

1235hytfgf ui
3434jhjhjh ui
6672jhjkhj ty

Я должен назвать первые четыре символа числами;следующие 6 символов как тип и последние 2 как id;какую функцию я должен использовать, чтобы сказать, что из индекса (0-3) должны быть числа и индекс (4-9): тип

Ответы [ 2 ]

2 голосов
/ 04 ноября 2019

LEFT (), RIGHT () и MID () - три функции, используемые для извлечения фрагментов строки.

Если ваши данные начинались с B2, вы можете использовать следующую формулу в пустой ячейке, чтобыпотяните первые 4 чартера.

LEFT(B2,4)

Теперь это вытянет первые 4 символа и оставит их как символы. Если вы хотите, чтобы числа в виде строки были преобразованы в числовое значение, то один из простых способов преобразовать его - отправить его с помощью математической операции, которая не меняет его значения. * 1, +0, -0, / 1 и - все работает. Ваша формула может выглядеть следующим образом:

--LEFT(B2,4)
LEFT(B2,4)+0
LEFT(B2,4)*1
LEFT(B2,4)/1
LEFT(B2,4)-0

Чтобы получить среднюю часть строки, используйте функцию MID. Поскольку вы уже знаете начальную позицию и длину строки, которую нужно потянуть, вы можете жестко закодировать информацию в формулу, и она будет выглядеть следующим образом:

MID(B2,5,6)

5 - это начальная позиция, с которой персонаж должен начать тянутьfrom, а 6 - длина строки, которую нужно извлечь, или число символов для извлечения.

Чтобы получить последние 2 символа, аналогично первой функции, используйте RIGHT (). Формула будет выглядеть следующим образом:

RIGHT(B2,2)
0 голосов
/ 05 ноября 2019

Если вы имеете дело с большим количеством данных, например, с тысячами записей, попробуйте мощный запрос в Excel.

Пожалуйста, обратитесь к этой статье , чтобы узнать, как использовать Power Query в вашей версии Excel. Он доступен в Excel 2010 Professional Plus и более поздних версиях . Моя демонстрация использует Excel 2016 .

Шаги:

  1. Добавьте данные из одного столбца в Power Query Editor;
  2. Выделитестолбец, используйте функцию Разделить столбцы и выберите By Digit to Non-Digit, она отделит первые nth числовые символы от строки;
  3. Выделите второй столбец, используйте Разделить столбцы снова функционируйте и выберите By Delimiter и используйте пробел в качестве разделителя, он разделит тип и идентификатор по желанию;
  4. Переименует столбцы, и вы должны иметь что-то вроде следующего:

Demo

Затем можно Закрыть и загрузить вывод на новый рабочий лист (по умолчанию).

Здесьзапрос мощности M Code за сценой только для справки. Все используемые функции доступны в графическом интерфейсе, поэтому их легко выполнить.

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"

Дайте мне знать, если у вас есть какие-либо вопросы. Ура :) 1046 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...