Исправление формулы агрегирования с использованием регулярных выражений в Google Sheets, чтобы все экземпляры учитывались - PullRequest
0 голосов
/ 30 апреля 2019

В моей таблице 2 ячейки.Это выглядит так:

D2 = {color: white, quantity: 23}, {color: black, quantity: 73}, {color: red, quantity: 10}
D3 = 106

D3 генерируется по следующей формуле:

=SUMPRODUCT(IFERROR(REGEXREPLACE(SPLIT(SUBSTITUTE(D2, "quantity:", "♦"), "♦"), "}.*", "")))

Другими словами, все, что я хочу сделать, это агрегировать количества.

Работает, однако, количественный атрибут должен находиться в самом конце каждого объекта "JSON".Если я изменю D2 на это:

D2 = {color: white, quantity: 23, size: small}, {color: black, quantity: 73}, {color: red, quantity: 10}

Поскольку я добавил атрибут размера после количества, D3 теперь становится 83. Поэтому я хотел бы сделать три вещи:

  • Агрегируйте все экземпляры количества, где бы они ни происходили.
  • Сделайте сопоставление регистра без учета регистра.Поэтому такие вещи, как «QUANTITY», также будут работать.
  • Пробелы после «количества:» не должны учитываться.Итак, что-то вроде {quantity:100}, {quantity: 23}, {quantity: 120} также будет работать.

Как это исправить?Я попытался удалить "}.*" регулярного выражения, но это, казалось, нарушило формулу.Любая помощь приветствуется.

1 Ответ

1 голос
/ 30 апреля 2019
=SUMPRODUCT(IFERROR(REGEXREPLACE(SPLIT(
 SUBSTITUTE(LOWER(D28), "quantity:", "♦"), "♦"), ",.*|}.*", "")))

0

...