Как извлечь данные в кавычках из строки в Excel

Как извлечь данные в кавычках из строки в Excel

У меня есть временные метки в виде CSV-файла, где каждая строка выглядит так:

TT_TU_MN009,"5009","200001010000","-1.8","3","4"
TT_TU_MN009,"5009","200001010200","-1.7","10","1"
TT_TU_MN009,"5009","200001011400","1","10","1"
...

Моя цель — извлечь вторую, третью и четвертую позицию из этой строки (без двойных кавычек) в отдельный столбец:

  • 5009
  • 200001010000
  • -1.8

Мне удалось добиться этого для первой колонки.

=LEFT(A2;SEARCH(",";A2)-1)

но не знаю как это сделать для двух других позиций. Это возможно без VBA?

заранее спасибо

А

решение1

Я хотел бы предложить два различных метода извлечения n-го текста из текстовой строки в ячейке.

Метод 1:

введите описание изображения здесь

  • Формула в ячейке J16:

    =TRIM(MID(SUBSTITUTE("""" & $J$13& REPT(" ",6),"""",REPT(CHAR(32),255)),2*255,255))
    

Примечание.

  • 2*255определяет положение текста, в J13, 5009является 2-м словом/текстом.

  • Для 20000101000позиции это 4-я, так как формула ,перед ней считается 3-й, поэтому для формулы в ячейке J17замените 2*255на 4*255и на 6*255для -1.8формулы в J18.


Метод 2:

Он содержит макрос VBA, является UDF (пользовательской функцией).

  • Нажмите либоАльт+Ф11илирНажмите наСнажмите TAB и из всплывающего меню нажмитеПосмотреть кодчтобы получить редактор VB.
  • Скопия &пСохраните этот код как Модуль.

    Function FindWord(Source As String, Position As Integer)

    Dim arr() As String
    arr = VBA.Split(Source, ",")
    xCount = UBound(arr)
    If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
     FindWord = ""
     Else
     FindWord = arr(Position - 1)
    End If
    End Function

введите описание изображения здесь

  • Формула в ячейке J3:=SUBSTITUTE(J1,CHAR(34),"")
  • Введите эту формулу в ячейку J5:=FindWord(J3,2)

Примечание.

  • В этой формуле 2определяется второе слово/текст в ячейке, которое будет следующим =FindWord(J3,3)и т.д.

При необходимости можно использовать функцию КОНКАТЕНАЦИЯ.

Связанный контент