2017-02-05 4 views
1

У меня есть статистика с моего устройства Android. Проще говоря, как я могу получить каждое отдельное поле в Excel (я хочу сделать это просто в Excel без использования внешнего языка)?Как разобрать мою строку в Excel

Например, как я могу получить vel значение 18.5 и хранить в другой ячейке.

Location[gps 40.459137,-87.661198 acc=8 et=+5d16h57m45s127ms alt=194.0 vel=18.5 bear=89.9 {Bundle[mParcelledData.dataSize=44]}] 

ПРИМЕЧАНИЕ: Обратите внимание, что 18,5 может быть 7.0, а также. Таким образом, длина значения не всегда фиксируется.

+0

Вы считаете VBA «внешним языком»? Это почти тривиально с VBA. Это * возможно использовать только формулы электронной таблицы, но на утомительной стороне. –

+0

Ну, просто используя формулы, как показано ниже. –

+0

Я включил решение VBA, прежде чем я прочитал это. Я оставлю его на случай, если вы передумаете по дороге. По-моему, использование Excel без VBA бесполезно болезненно. Это гораздо более мощный инструмент при использовании макросов. @ Отличный ответ Gary'sStudent можно настроить, чтобы быть более гибким. –

ответ

1

Вот решение VBA:

Function GetVel(s As String) As Double 
    Dim fields As Variant 
    Dim i As Long 
    fields = Split(s) 
    For i = LBound(fields) To UBound(fields) 
     If fields(i) Like "vel=*" Then 
      GetVel = Val(Split(fields(i), "=")(1)) 
      Exit Function 
     End If 
    Next i 
End Function 

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

enter image description here

+0

о, я вижу. Для каждого файла я должен повторить его, или Excel сохраняет его, и он становится постоянным? –

+0

Как правило, да, но вы можете хранить их в личной книге макросов для повторного использования (я склонен использовать это экономно). Также возможно создать надстройку, но это несколько связано. См. Информацию о личных макроэкономических книгах: https://support.office.com/en-us/article/Copy-your-macros-to-a-Personal-Macro-Workbook-aa439b90-f836-4381-97f0-6e4c3f5ee566 –

+0

Смотрите это: http://www.rondebruin.nl/win/personal.htm См. Особенно авторский «Пример 2» –

2

С данными A1, в другой ячейке введите:

=LEFT(MID(A1,FIND("vel=",A1)+LEN("vel="),999),FIND(" ",MID(A1,FIND("vel=",A1)+LEN("vel="),999))-1) 

enter image description here

+0

ПРИМЕЧАНИЕ. Обратите внимание: 18.5 также может быть 7.0. Таким образом, длина значения не всегда фиксируется. Приспособилось ли это? –

+0

Кстати, это неправильно. Это не дает мне никаких значений. –

+0

@TinaJ Есть ли ** пробел ** символ после *** 18.5 *** ?? –

 Смежные вопросы

  • Нет связанных вопросов^_^