Извлечение количества (числа) из длинной строки текста - PullRequest
0 голосов
/ 30 января 2019

У меня проблема в следующем.Данные, которые я извлекаю, добавляют информацию очень неудобным способом.Когда я пытаюсь выделить и извлечь определенный текст в строке, это становится очень сложным.Я хочу быть в состоянии извлечь количество продукта, чтобы показать только числовое значение, без буквенного алфавита или символов.

Строка:

[{"orderItemId":609507407, "lineItemKey": "1509870501993", "sku": "SKU-111111", "name": "Продукт компании - нет. Отправка в течение 1-2 рабочих дней", "imageUrl": "https://FAKEADDRESS.com/","weight":{"value":352.0,"units":"ounces","WeightUnits":1},"quantity":1,"unitPrice":1599.0,"taxAmount":null,"shippingAmount":null,"warehouseLocation":null,"options":[],"productId":30236912,"fulfillmentSku":null,"adjustment":false,"upc":"","createDate":"2018-11-03T20:20:42.247","modifyDate":"2018-11-03T20:20:42.247"}]

Использование (ВЛЕВО (ВПРАВО (N2: N, LEN (N2: N) -FIND («количество», N2: N, 1) -9), 3)) Я могу найти правильныйрасположение количества, однако, если числовое значение (количество) составляет 2 или 3 цифры, оно сохранит любой следующий текст / число.

т. е. «количество»: 123 покажет 123, но «количество»: 1, "покажет 1",

(ВЛЕВО (ВПРАВО (N2: N, LEN (N2: N) -FIND («количество», N2: N, 1) -9), 3))

По сути, я просто хочу, чтобы формула показывала числовое значение (количество) в ячейке. Ничего другого.

1 Ответ

0 голосов
/ 30 января 2019

Для меня это выглядит как JSON, и даже регулярное выражение может быть излишним для одного целого числа.

Dim str As String, el As String, q As Long

str = "[{""orderItemId"":609507407, ... ,""quantity"":1,""unitPrice"":1599.0, ... ,""modifyDate"":""2018-11-03T20:20:42.247""}]"
el = """quantity"":"

q = val(Mid(str, InStr(1, str, el) + Len(el)))
Debug.Print q
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...