Я пытаюсь написать код для автоматизации поиска, который мы проводим в моей компании по 64 таблицам, по 6 вложенных листов в каждой. Из-за типичных проблем «левой руки» и «большой руки» большой компании, а также из-за строгой политики объединение электронных таблиц невозможно. Таким образом, я смотрю на одну электронную таблицу, в которой выполняется поиск заданного названия компании во всех электронных таблицах, однако, создавая прямую ссылку на каждую отдельную электронную таблицу и работы с вложенными листами, я пытаюсь динамически генерировать вложенные листы.
Код ссылки на электронную таблицу напрямую:
Использование SumProduct:
=SUMPRODUCT(--('\\samnedfsn1\common\Exception - Frequent Access Spreadsheets\Customer Services\Irregularities spreadsheets\2017-18 irregularities spreadsheets\[YH Irregularities Spreadsheet 2017-18.xlsx]Irregularities'!$A:$A=J5))
Использование VLookup:
=(IFERROR(IF(VLOOKUP(J5,'\\samnedfsn1\common\Exception - Frequent Access Spreadsheets\Customer Services\Irregularities spreadsheets\2017-18 irregularities spreadsheets\[YH Irregularities Spreadsheet 2017-18.xlsx]Irregularities'!$A:$A,1,FALSE)=J5,"Yes","No"),"No"))
В этом случае «J5» относится к ячейке, используемой для поиска (в данном случае «Меггинсон», и поиск выполняется нормально.
Прямые ссылки - код работает
Однако, когда я пытался генерировать ссылки динамически, я пытался объединить адрес, чтобы я мог генерировать ссылки на вложенные листы динамически. Вот код, который я использую для SumProduct, пытаясь сгенерировать его:
=SUMPRODUCT(--("'\\samnedfsn1\common\Exception - Frequent Access Spreadsheets\Customer Services\Irregularities spreadsheets\2017-18 irregularities spreadsheets\[YH Irregularities Spreadsheet 2017-18.xlsx]" & Lists!A2:A7 & "!$A:$A=" & $J$5 ))
(примечание: для дальнейших снимков экрана «Списки! A2: A7» будут «Списки!: A2» для улучшения читаемости)
Однако этот код генерирует ошибку #value. Теперь, согласно блоку оценки формулы, код генерирует ссылки на листы в виде массива, так что это работает нормально. Это то, что окно оценки показывает перед тем, как генерирует ошибку #value:
продукт не работает - 1
Теперь я заметил, что часть "megginson" в конце, похоже, теряет свои кавычки, что, как я думал, могло быть причиной, поэтому я исправил конец кода SumProduct следующим образом:
"!$A:$A=" & CHAR(34) & $J$5 & CHAR(34)
Но это то, что показывает оценка перед генерацией ошибки
продукт не работает - 2
Где сейчас кажется, что в конце слишком много кавычек. Я пробовал разные комбинации добавления кавычек вокруг ссылки J5, но ни одна из них не решила проблему.
Я также попытался вместо этого использовать VLookup, используя этот код для динамической генерации ссылок:
=VLOOKUP(J5,"\\samnedfsn1\common\Exception - Frequent Access Spreadsheets\Customer Services\Irregularities spreadsheets\2017-18 irregularities spreadsheets\[YH Irregularities Spreadsheet 2017-18.xlsx]" & "Irregularities!" & "$A:$A",1,FALSE)
, которая также генерирует ту же ошибку #value.
Это оценка формулы для VLookup до его сбоя
не работает - VLookup
Это действительно смущает меня, так как я не вижу функциональной разницы между выводом между кодом, который напрямую ссылается на электронную таблицу неровностей, и тем, который пытается динамически сгенерировать ссылку, кроме наличия цитаты знаки (которые, как я полагаю, исчезают при вычислении формулы?).
Прямая ссылка (формула оценивается с шагом до возврата результата):
=VLOOKUP("Megginson ",'\\samnedfsn1\common\Exception - Frequent Access Spreadsheets\Customer Services\Irregularities spreadsheets\2017-18 irregularities spreadsheets\[YH Irregularities Spreadsheet 2017-18.xlsx]Irregularities'!$A:$A,1,FALSE)
Динамическая ссылка (формула оценивается с шагом до сбоя):
=VLOOKUP("Megginson ", "'\\samnedfsn1\common\Exception - Frequent Access Spreadsheets\Customer Services\Irregularities spreadsheets\2017-18 irregularities spreadsheets\[YH Irregularities Spreadsheet 2017-18.xlsx]Irregularities'!$A:$A",1,FALSE)
Теперь я понимаю, что проблема в том, чтобы попытаться сгенерировать ссылку на внешний лист с помощью конкатенации, однако я абсолютно не представляю, как изменить код, чтобы ссылки генерировались правильно (предполагая, что это не так). Если кто-то может помочь мне, рассказав, что происходит не так, я был бы невероятно благодарен.
Ура!