2

У меня длинные учетные коды, разделенные тире, поэтому они выглядят как ##### - ### - ## - ######. Одна из этих черточек, разделяющих номера, - это код отдела. В моей книге у меня есть лист с именем "dept_list", и в столбце E этого листа у меня есть формула, которая выводит код отдела, в столбцах F & G у меня есть код счета и его описание.

Список кодов счетов очень длинный, поэтому, чтобы сэкономить время, у меня есть лист под названием "поиск", где пользователь может искать коды на основе кода отдела. Так, например, если код учетной записи, который ищет пользователь, имеет внутри себя код отдела "123", они могут ввести "123" в ячейку B2 на листе "поиска" и нажать кнопку "поиск" рядом с ячейка, которая переносит их на отдельный лист под названием "deptlookup", в котором будут перечислены все коды счетов, в которых есть код dept "123", а также описание учетной записи.

Я думаю, что VLOOKUP может работать для этого. Я просто не уверен, как настроить его синтаксически или нужно ли это делать в VBA. Я никогда не делал этого раньше, поэтому, если кто-нибудь может дать мне какие-либо убедительные предложения или советы о том, как лучше всего это сделать, я был бы очень признателен. Спасибо!

Это всего лишь две строки листа "dept_list". Столбец A - это список кодов отделов, а столбец B - это описание отделов. Столбец E представляет собой формулу "= MID(F ячейка, 9,3)", которая выводит код dept, встроенный в полный код учетной записи, а столбец F представляет собой код учетной записи, а G представляет собой описание учетной записи.

Это строка поиска на листе "поиск". В ячейке B2 есть место, где я хотел бы, чтобы пользователь ввел код dept, например, "000", "001" или "002" и т.д., И нажмите кнопку "Поиск".

После нажатия кнопки "поиск" пользователь будет перенаправлен на лист "deptlookup", где я хотел бы, чтобы все полные коды аккаунтов и описание аккаунта, содержащие искомый код, были перечислены здесь. Причина, по которой в описании есть # N/A, заключается в том, что в этих ячейках есть VLOOKUP, чтобы вытащить описание на основе кода учетной записи, указанного в столбце A.

Я попытался использовать VLOOKUP на основе ячейки параметра поиска листов поиска. По сути, я пытаюсь сказать: ЕСЛИ значение в ячейке справочного листа B2 = MID(столбец A листа acct_codes, 9,3), используйте VLOOKUP, чтобы извлечь все те коды счетов, которые соответствуют этому коду dept, если нет, то ничего не вернуть.

=IF(lookup!B2=MID(acct_codes!A:A,9,3),VLOOKUP(A2, acct_codes!$A:$A,1,FALSE), " ")

Я также попробовал это, но это все еще не работает:

=IF(lookup!B2=MID(acct_codes!A:A,9,3),VLOOKUP(acct_codes!A:A=MID(acct_codes!A:A,9,3),acct_codes!A:A,1,FALSE), "")

1 ответ1

2

Вот пример vlookup с подстановочными знаками:

=VLOOKUP("*" & D1 & "*",F1:G4,2,FALSE)

EDIT # 1:

Вот пример получения нескольких возвратов. Скажем, мы начнем с:

В C1 мы вводим:

=IF(COUNT(SEARCH({"123"},A1))>0,1,"")

и в C2:

=IF(COUNT(SEARCH({"123"},A2))>0,1+MAX($C$1:C1),"")

и скопировать вниз. Столбец C отмечает каждую строку, содержащую 123

Затем в D1 введите:

=IFERROR(INDEX(B:B,MATCH(ROW(),C:C,0)),"")

и скопируйте вниз:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .