Найти конкретный текст в большей текстовой строке

0

Я разрабатываю приложение для составления личного финансового бюджета и денежных потоков в Excel 2016 для Windows 10, и мне нужна помощь в разработке набора формул, которые будут:

  1. Извлекайте определенные фразы - конечно, по одной - из более длинной строки текста, которая соответствует названию соответствующей строки метки для этого типа транзакции.
  2. Подытожьте все аналогичные транзакции на основе описания метки для соответствующей транзакции для соответствующих транзакций.

Я создал «Метки линии» как средство, помогающее привязать банковскую транзакцию к соответствующей категории бюджета. Источником моих данных является электронная таблица денежных потоков и загруженные транзакции (в формате XL) из моего финансового учреждения. Вот некоторые критерии, которые я определил в отношении описаний транзакций из банка:

  1. Желаемая фраза варьируется по длине в зависимости от типа транзакции и с какой сущностью транзакция.
  2. Все транзакции с определенной сущностью содержат точную фразу где-то в пределах всей строки текста.
  3. Строка идентификации может появиться в любом месте строки описания (почти как в случайном порядке).
  4. Не все описания транзакций начинаются с тех же символов, что и в примерах ниже.
  5. Поскольку первая буква любой данной фразы может быть первой буквой отдельной фразы, попытка использовать FIND для идентификации и классификации нескольких транзакций может привести к неправильной группировке и подытогу различных транзакций.

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

FORD MTR            Withdrawal ACH FORD MTR CHGO TYPE: ONLINE PMT ID: XXXXXXXXX

BANK OF AMERICA     Withdrawal ACH BANK OF AMERICA TYPE: ONLINE PMT ID: XXXXXXXXX

INFINITE ELECTRIC   Online Payment XXXXXXXXXX To INFINITE ELECTRIC

Если я найду способ связать аналогичные транзакции с их правильными метками строк, я полагаю, что смогу использовать форму SUMIF или аналогичную функцию для промежуточных итоговых транзакций для каждой метки строки в таблице бюджета. Я думаю, что дал достаточно информации, но ... Если нужно больше, пожалуйста, дайте мне знать. Заранее большое спасибо.

JoeDeal
источник

Ответы:

0

Возможно, наиболее элегантным решением является написание функции VBA, которая использует сопоставление с шаблоном регулярного выражения, чтобы вы могли передать значение метки строки и вернуть тип транзакции или другие соответствующие сведения. Если вам не нравится этот подход или вы предпочитаете использовать формулы Excel, вы можете сделать это, настроив столбцы для каждого типа транзакции, которую вы хотите анализировать (снятие средств, платежи, депозиты, переводы и т. Д.). Затем вам нужно будет определить, какие данные вам нужно проанализировать для каждого. Затем вы можете использовать текстовые формулы Excel (SEARCH, FIND, MID и т. Д.) Для анализа того, что вы хотите.

Например, если вы хотите проанализировать имя организации / сущности из транзакции типа Снятие , при условии, что сущность всегда следует за словом «Снятие» в метке строки, ваша формула будет (метка строки в A10 ):

= ЕСЛИ (ISERR (ПОИСК ( "Выход", A10,1)), "", MID (А10, ПОИСК ( "Выход", A10,1) + LEN ( "Выход") + 1, FIND ( ":", A10,1) -LEN ( "Выход") - 2))

Аналогичные формулы можно использовать для анализа идентификатора платежа или других типов меток строк.

DeltaHotel
источник