Я пытаюсь сделать следующее, используя формулы Excel, а не VBA. У меня есть две книги (скажем, WB1 и WB2), и обе открыты в Excel. В WB1 у меня есть лист с ячейкой (скажем, A1
), которая может иметь разные коды, часть которых является именем одного из листов в WB2. Коды имеют вид DOD8.2x1.9, DOD8.2x2.4...DOD9.2x1.9, DOD9.2x2.4.., DOD10.2x4.9
et c, где символы до x
относятся к листам в WB2 (т.е. DOD8.2, DOD9.2, DOD10.2
et c). Мне нужна формула для другой ячейки в WB1 (скажем, B1
), которая может получить значение определенной ячейки c на листе в WB2, которая определяется этим кодом. Я знаю, что формула в B1
формы =[WB2.xlsx]DOD8.2!$EB$6
или =[WB2.xlsx]DOD10.2!$EB$6
- это то, как получить значения ячеек из заданных c листов в WB2, и что формула =LEFT(A1, FIND("x",A1)-1)
извлечет соответствующую часть ячейки A1
чтобы дать мне имя специфицированного рабочего листа c в WB2, но я не могу понять, как использовать его для построения формулы, которая объединяет эти два, чтобы автоматически выбрать рабочий лист, определенный кодом в A1
. Я попытался заменить имя листа (например, DOD10.2
) в общей формуле на LEFT(A1, FIND("x",A1)-1)
, поэтому я получил =[WB2.xlsx]LEFT(A1, FIND("x",A1)-1)!$EB$6
, используя разные методы конкатенации, но ни один из них не работал. Может ли кто-нибудь предложить способ достижения этого?