Как заменить GUID в записях, а затем вернуть только уникальные в формуле Excel «Уникальные»? - PullRequest
0 голосов
/ 04 января 2019

Описание:

У меня есть список записей (запросов API) с различными GUID в A: столбец на каждой вкладке Excel.
Формат GUID ******** - **** - **** - ************.
Каждая такая запись содержит косую черту и текст до и после GUID.
Есть также записи безGUID.
Как вернуть только уникальные записи, игнорируя при этом разные значения GUID?

Я могу получить все уникальные записи, но теперь нужно заменить GUID, например, словом "{id}", и сократить список дажебольше пропуская уникальность значений GUID.

формула Excel (необходимо исправить, чтобы заменить GUID, и возвращать только уникальные):

=iferror(unique({Sheet1!A:A; Sheet2!A:A}), "")

Ввод:

AAA/d20b334e-76c7-e811-a982-f2cb536a8f94/BBB
AAA/d20b334e-76c7-e811-a982-f2cb536a8f94/BBB
AAA/c63cb3bb-1f49-e811-a981-ee3456e98dd2/BBB
AAA/c63cb3bb-1f49-e811-a981-ee3456e98dd2
CCC/d20b334e-76c7-e811-a982-f2cb536a8f94
GGG/c63cb3bb-1f49-e811-a981-ee3456e98dd2/HHH
GGG/d20b334e-76c7-e811-a982-f2cb536a8f94/HHH
record-without-id-1
record-without-id-1
record-without-id-2

Фактический результат:

AAA/d20b334e-76c7-e811-a982-f2cb536a8f94/BBB
AAA/c63cb3bb-1f49-e811-a981-ee3456e98dd2/BBB
AAA/c63cb3bb-1f49-e811-a981-ee3456e98dd2
CCC/d20b334e-76c7-e811-a982-f2cb536a8f94
GGG/c63cb3bb-1f49-e811-a981-ee3456e98dd2/HHH
GGG/d20b334e-76c7-e811-a982-f2cb536a8f94/HHH
record-without-id-1
record-without-id-2

Ожидаемый результат:

AAA/{id}/BBB
AAA/{id}
CCC/{id}
GGG/{id}/HHH
record-without-id-1
record-without-id-2

Ответы [ 2 ]

0 голосов
/ 17 марта 2019
=regexreplace(A1,"[0-9a-f]{8}?[-]?(?:[0-9a-f]{4}[-]?){3}[0-9a-f]{12}?","{id}")
0 голосов
/ 04 января 2019

Это был долгий путь, но я решил это сегодня!:)
Нужно было создать еще один столбец 'Transfer', чтобы выполнить это действие, прежде чем помещать окончательные уникальные значения в сводную таблицу с помощью упомянутой первоначально функции.
Таким образом, основная идея здесь заключается в том, чтобы вычислить положение первого тире и GUID.длина в строке, поскольку мы знаем точный формат GUID.
Обратите внимание, что это решение работает только для случая, когда тире существуют только в пределах GUID, поэтому остальная часть записи должна быть без тире.

=SUBSTITUTE(A1,MID(A1, FIND("-",A1)-8, 36),"{id}")

где
FIND ("-", A1) -8 - начало GUID (8 символов перед первым тире)
36 - длина GUID

...