Как определить источник строки, используя отдельный список идентификаторов

#excel #vba

#excel #vba

Вопрос:

У меня есть действительно быстрые вопросы о том, какую функцию мне нужно использовать для моей текущей головоломки:

Я создаю инструмент, который автоматически идентифицирует продавца по первым 5 цифрам номера счета (так сказать, их «код»).

Для иллюстрации в номере счета «1111122222» «11111» будет кодом продавца, а «22222» будет уникальным идентификатором клиента.

У каждого продавца может быть несколько десятков уникальных кодов, поэтому у меня есть отдельный лист с таблицей кодов. (Разделен, потому что позже он будет разделен на отдельную книгу)

Таблица кодов выглядит следующим образом:

         Bobs Burgers | Johns Chicken | Ali's Shwarma
        12345        | 56784         |77774
        45698        | 33333         |44444
        12398        | 99999         |55555
 

Поскольку мы получаем данные в блоках по 20 ~ 30 учетных записей одновременно, все, что я хотел бы сделать, это проверить учетные записи по списку кодов и вывести имя продавца. И, возможно, кричать «конфликт, прервать и бежать к границе!», Если идентифицировано более одного продавца 🙂

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

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

Комментарии:

1. Каким будет параметр ввода и каким будет результат ? Вводит-> 123457890 -> 12345 = Учетная запись это?

2. «нет ручного участия конечных пользователей», что означает, что они все еще могут нажать кнопку? вы можете закодировать свой index/match or vlookup в VBA и предоставить соответствующие выходные данные.

3. Пожалуйста, обратите внимание, что StackOverflow фокусируется на ответе на объективные вопросы, а не на субъективные вопросы. Советы о том, как, возможно, что-то сделать, попадают в Too Broad категорию, и связанные с этим вопросы часто закрываются. Если вы, пожалуйста, отредактируете свой пост, чтобы он был более объективным, это, скорее всего, поможет вам продвинуться дальше на этом форуме.

4. и пересылается соответствующим сторонам, не затрагивая данные или места назначения — вот что делает отчет : иметь нормальный, нормализованный источник данных (столбец A «AccountNumber», столбец B «CustomerName») и использовать стандартные запросы — затем напишите макрос, который берет источник данных и раскладывает его поспособ, которым вышестоящие и сторонние организации хотят его увидеть.

5. @RonanVico В значительной степени данные вводятся в виде списка учетных записей, первые 5 цифр сравниваются со списком, выводится заголовок списка, с которым сопоставляется учетная запись (который позже используется для распространения). Итак, если использовать таблицу примеров, которую я опубликовал, это будет Enter -> 4569822222, 1234599786, 1239844444 = Bobs Burgers.

Ответ №1:

Извиняюсь за мозговой пердеж — я нашел решение. Я пытался настроить коды в виде таблицы с розничным продавцом в качестве заголовка, причем каждый розничный продавец находится в своем собственном столбце. Который просто никак не работал. Мое менее элегантное решение состояло в том, чтобы переформатировать кодовую книгу в таблицу «code: Retailer», которая позволяла ВПР фактически извлекать правильные данные и извлекать коды с помощью функции =LEFT(TEXT(cell),5) внутри скрытого буферного листа в рабочей книге, а не через VBA.

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

Все это немного медленно и потребует немного ручной установки на всех компьютерах, но сейчас это работает.

PS Спасибо @Cyril за напоминание мне об индексе — сделал еще один из моих проектов в десять раз проще!