Я просмотрел все и либо я не уверен, как сформулировать это для поиска, либо там просто ничего нет. Первоначально информация в моем листе Excel была взята из текстового файла. Мне пришлось проделать большую работу (разграничение и много поиска / замены), чтобы заставить его даже правильно перейти в Excel, и это все еще не правильно, но я предполагаю, что это подойдет. К сожалению, он поместил все в одну строку (то есть A1, B1, C1 и т.д.). Мне нужно, чтобы информация была разбита на несколько строк;

     A | B
1 | id | 219832
2 | id | 2398
3 | id | 0382
etc

Либо это, либо любая другая ячейка, считающаяся частью заголовка, а следующая ячейка должна быть помещена в соответствующий столбец;

     A  |  B   |   C   |   D
1 | id  | type | label | date
2 | 232 |  A   |  Here | 12/12/12
3 | 643 |  B   | There | 10/14/11
4 | 832 |  A   | None  | 09/29/13
etc

Вот как это выглядит как данные, в настоящее время

    id | TTXW5IAXBSWDETCQZKGUNKK2RYKOVVFQ4S3VGCV | type | A | Label | Here | date | 12/12/12 | id 
etc

Если кто-то может помочь мне сделать это, я буду очень признателен. Хотя второй вариант был бы гораздо более полезным для меня, поскольку именно в этом я действительно нуждаюсь, чтобы перенести всю эту информацию, первый вариант был бы приемлемым, поскольку я могу просто работать вручную оттуда. Кроме того, просто чтобы вы знали, насколько это велико, мой ряд простирается до JON1.

Редактировать:

Кроме того, без всех операций поиска / замены (некоторых, но не так много) данные вставляются в каждую ячейку как;

"id":"TTXW5IAXBSWDETCQZKGUNKK2RYKOVVFQ4S3VGCV"

И вот как это выглядит

    "id":"TTXW5IAXBSWDETCQZKGUNKK2RYKOVVFQ4S3VGCV" | "type":"A" | "label":"Here" | "date":"12/12/12" | {"id": 
etc

или что-то подобное. Если с этим будет легче работать, то и с этим все будет в порядке. Из просмотра данных я также замечаю, что не каждая строка данных будет начинаться с "id", хотя, без использования find/replace, чтобы избавиться от нее, начало новых строк данных имеет {перед ним ;

{"type":"A" |
{"id":"3242134" |
like that

2 ответа2

1

Вы можете использовать встроенную функцию Excel.

Выполните следующие шаги:

  1. Перейдите на вкладку « Данные ».
  2. В группе « Инструменты данных » вы увидите "Текст в столбцы". Нажмите на него.

Теперь следуйте инструкциям мастера преобразования текста в столбцы в соответствии с вашими потребностями.

Если это не поможет, укажите одну строку ввода и требуемый выход.

0

Самый простой способ - через VBA. Я полагаю, что в каждой ячейке в строке 1 есть "поле", вот так

{"id" : "TTXW5IAXBSWDETCQZKGUNKK2RYKOVVFQ4S3VGCV" | "type" : "A" | "label": "Here" 

Вы должны перейти к макросу и создать новый, вставить следующий код:

 Sub test()
        Dim wks As Worksheet
        Set wks = ActiveSheet
        Final = False
        i = 1
        InitialRow = 2
        Dim labels(0 To 4) As String
        labels(0) = "id"
        labels(1) = "type"
        labels(2) = "label"
        labels(3) = "grouping"
        labels(4) = "created"
        While Final = False
            ThisCell = Trim(wks.Cells(1, i))
            iniChar = Left(ThisCell, 1)
            If iniChar = "{" Then
                lengthCell = Len(ThisCell)
                ThisCell = Trim(Right(ThisCell, lengthCell - 1))
                InitialRow = InitialRow + 1
            End If
            PosLabelinCell = InStr(ThisCell, ":")
            LabelinCell = Trim(Left(ThisCell, PosLabelinCell - 1))
            lLabelinCell = Len(LabelinCell)
            DatainCell = Trim(Mid(ThisCell, PosLabelinCell + 1))
            lDatainCell = Len(DatainCell)
            LabelinCell = Mid(LabelinCell, 2, lLabelinCell - 2)
            DatainCell = Mid(DatainCell, 2, lDatainCell - 2)
            Select Case LabelinCell
                Case labels(0)
                    wks.Cells(InitialRow, 1) = DatainCell
                Case labels(1)
                    wks.Cells(InitialRow, 2) = DatainCell
                Case labels(2)
                    wks.Cells(InitialRow, 3) = DatainCell
                Case labels(3)
                    wks.Cells(InitialRow, 4) = DatainCell
                Case labels(4)
                    wks.Cells(InitialRow, 5) = DatainCell
            End Select
            i = i + 1
            If wks.Cells(1, i) = "" Then
                Final = True
            End If
        Wend
End Sub

Он пройдет через все ячейки в первой строке и проверит, начинается ли ячейка с символа {, предполагая, что это символ новой строки . Если метка отсутствует в 4, которые вы мне предоставили (идентификатор, тип, метка, группировка, создана), она оставит пустую ячейку.

Теперь запустите макрос с помощью F5 или зеленой кнопки "play"; из строки 3 будут все данные, упорядоченные по столбцам.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .