Страницы: 1
RSS
800 тыс ячеек с JSON
 
Есть Excel файл, в нем лежит 800 тыс ячеек с JSON, в каждой строке от 5 до 70 ячеек в ряд. У каждой строки есть уникальный id.

Из кода нужны только значения name, number, ref, original_item_id - их вставить в каждую ячейку в формате: " ref;original_item_id;number;name "

Х Э Л П!

JSON одной из ячеек:

{
  • "name":"COVER L.H ENGINE",
  • "number":"14031-029",
  • "original_item_id":"1413903",
  • "item_id":"1413903",
  • "item_description":"",
  • "itemslist_id":"244540962",
  • "itemsset_description":"",
  • "quantity":"1",
  • "ref":"18",
  • "manufacturer":"Kawasaki",
  • "tech_type":"Мотоцикл",
  • "variant":"A1",
  • "request_allowed":false,
]}
Изменено: sl14 - 13.04.2019 03:43:08
 
Считать быстро не будет
=TRIM(LEFT(SUBSTITUTE(MID(A1;FIND("name""";A1)+7;99);"""";REPT(" ";"99");1);99))&";"&

TRIM(LEFT(SUBSTITUTE(MID(A1;FIND("number""";A1)+9;99);"""";REPT(" ";"99");1);99))&";"&
TRIM(LEFT(SUBSTITUTE(MID(A1;FIND("ref""";A1)+6;99);"""";REPT(" ";"99");1);99))&";"&
TRIM(LEFT(SUBSTITUTE(MID(A1;FIND("original_item_id""";A1)+19;99);"""";REPT(" ";"99");1);99))

Только вот вас интересует наверно не сколько их, а как из ячейки извлечь определенные данные, Название теме предложите новое.
Изменено: БМВ - 13.04.2019 07:44:12
По вопросам из тем форума, личку не читаю.
 
Цитата
sl14 написал: Есть Excel файл, в нем лежит 800 тыс ячеек
Приложите файл-ПРИМЕР (НЕ 800 тыс.), покажите в нем Как есть - Как надо и предложите название для темы, которое отражает суть задачи
Согласие есть продукт при полном непротивлении сторон
 
Цитата
sl14 написал: Из кода нужны только значения name, number, ref, original_item_id -
ковыряйте Power Query
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Столбец1", type text}}),
    #"Parsed JSON" = Table.TransformColumns(#"Changed Type",{"Столбец1", each Json.Document(_)}),
    #"Expanded Столбец1" = Table.ExpandRecordColumn(#"Parsed JSON", "Столбец1", {"name", "number", "original_item_id", "ref"}, {"name", "number", "original_item_id", "ref"})
    
in
    #"Expanded Столбец1"
Изменено: JeyCi - 14.04.2019 16:04:20
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
sl14 написал: в формате: " ref;original_item_id;number;name "
Попаразитировал на файле от JeyCi,
Код
Sub JSON800()
Dim arr(), arrJson(), I&, J&, N&
arr = Worksheets("Лист1").ListObjects("Таблица1").DataBodyRange.Value
ReDim arrJson(1 To UBound(arr), 1 To 4)
For I = 1 To UBound(arr)
    iJson = Split(arr(I, 1), ",")
    For J = 0 To UBound(iJson)
        Select Case True
            Case iJson(J) Like "*ref*"
                N = 1
            Case iJson(J) Like "*original_item_id*"
                N = 2
            Case iJson(J) Like "*number*"
                N = 3
            Case iJson(J) Like "*name*"
                N = 4
            Case Else
                N = Empty
        End Select
        If N <> 0 Then arrJson(I, N) = Replace(Split(iJson(J), ":")(1), """", "")
    Next
Next
Worksheets("Лист2").Range("F2").Resize(UBound(arrJson), 4) = arrJson
End Sub
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Наверх