
Я использую две разные рабочие книги: первая [только данные Excel] создана как база данных, а вторая [шаблон счета-фактуры] создана для создания счета-фактуры.
При создании счета я использую смещение, например, для чтения списка местоположений клиентов.
=OFFSET('[Excel Data Only.xlsx]Channels'!$A$2,MATCH(Invoice!$C$1,'[Excel Data Only.xlsx]Channels'!$A$2:$A$198,0)-1,1,COUNTIF('[Excel Data Only.xlsx]Channels'!$A$2:$A$198,Invoice!$C$1),1)
И это работает правильно.
Проблема в том, что когда я хочу создать копию рабочей книги [Шаблон счета-фактуры], которая будет иметь другой путь, например, на рабочем столе, смещение меняется на
=OFFSET('C:\Users\anthony\Desktop\[Excel Data Only.xlsx]Channels'!$A$2,MATCH(Invoice!$C$1,'C:\Users\anthony.boulos\Desktop\[Excel Data Only.xlsx]Channels'!$A$2:$A$198,0)-1,1,COUNTIF('C:\Users\anthony.boulos\Desktop\[Excel Data Only.xlsx]Channels'!$A$2:$A$198,Invoice!$C$1),1)
Таким образом, путь к рабочей книге [Только данные Excel] автоматически изменился и больше недоступен, поскольку я просто изменил путь к [Шаблону счета-фактуры], а не к другому.
Как мне управлять этой формулой, чтобы она не влияла на путь [Только данные Excel] при изменении пути [Шаблона счета-фактуры]?
Спасибо за помощь!
решение1
Когда вы открываете файл Excel с внешними ссылками (и позволяете ему выполнять обновления, когда вы получаете предупреждение безопасности), Excel, похоже, выполняет некий автоматизм для разрешения ссылок. Похоже, он оптимизирован для случаев, когда вы перемещаете и источник, и цель, особенно для изменения букв дисков (может быть, пережиток времен дискет?) .
К сожалению, это может привести к сбоям в работе, если вы перемещаете только целевой файл ( Invoice Template.xlsx
в вашем примере).
Вероятно, самый быстрый способ исправить ситуацию — через edit links
диалог, который вы можете найти в Data
-Ribbon. Там у вас есть таблица всех внешних файлов, и вы можете изменить, куда они указывают ( change source
). Когда вы исправите путь Excel Data Only.xlsx
туда, это должно обновить все ссылки на этот файл в вашей таблице одновременно.
решение2
Если вы столкнулись с проблемой на огромном массиве файлов, которые нужно обновить в пакетном режиме (или вы просто хотите приключений, и не забудьте сначала сделать резервную копию!), вы можете попробовать отредактировать необработанный файл *.xlsx
. На самом деле это zip-архив.
Если вы откроете его с помощью проводника архивов (7-молниянапример), вы найдете внешние ссылки в подкаталоге \xl\externalLinks\_rels\
. Вероятно, есть файл с именем externalLink1.xml.rels
(номер может отличаться). Это XML-файл, содержащий (относительный) путь к файлу и имя. Вы можете обновить его там. Он будет напечатан как.../externalLinkPath
пометка его как относительного расположения вашего файла. Изменение этого типа на http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing
также может решить проблему.
Ваш externalLink1.xml.rels может выглядеть так. Я не тестировал этот путь специально :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship
Id="rId1"
Type="http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing"
Target="'C:\Users\anthony\Desktop\channels%20(BE%20VERY%20VERY%20PRECAUTIOUS%20WITH%20THIS%20FILE)!!!!\0000%20TEMPLATES\INVOICE%20template\New%20template\Excel%20Data%20Only.xlsx "
TargetMode="External"
/>
</Relationships>
PS: Я бы не рекомендовал использовать специальные символы (скобки, восклицательные знаки и т. д.) в файлах Excel или путях, так как это также может вызвать проблемы.