|
|
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! задача: нужно рассчитать по определенным формулам 23 показателя, из них 3 считается по средней хронологической формуле. условие: данные представлены только в xls файлах, структура в принципе одинаковая, имена и каталоги хранения совпадают с месяцем отчета. мои действия: создал книгу, связал формулами индекс(), поискпоз() и абсолютными ссылками (где это было возможно), рассчитал на примере одного месяца показатели на первом листе. На втором создал таблицу расчета средних хронологических для 3х показателей. таблица вида 01.08.201001.09.2010 '...\X1007\[имя_1007.xls]Лист1'!$B$25'...\X1008\[имя_1008.xls]Лист1'!$B$25 Хотелось бы (в зависимости от месяца и года введенной даты) обновлять ссылки на обоих листам. Поиском нашел макрос обновления. Sub UpdLink() Application.DisplayAlerts = False aLinks = ActiveWorkbook.LinkSources(xlExcelLinks) If Not IsEmpty(aLinks) Then For i = 1 To UBound(aLinks) fname = aLinks(i) If FileExists3(fname) = True Then ActiveWorkbook.UpdateLink Name:=fname ' Else ' x = Split(fname, "\") ' fnput = Replace(fname, x(UBound(x)), "[" & x(UBound(x)) & "]") ' For Each Sh In ActiveWorkbook.Sheets ' Sh.Cells.Replace What:=fnput, Replacement:=fnput, LookAt:=xlPart ' Next Sh End If Next i End If Application.DisplayAlerts = True End Sub Файл выложить не могу. На текущий момент в файле около 40 связей. Применительно к моей задаче как использовать этот макрос? Или есть альтернатива данному алгоритму? Думал про сводную таблицу, но не уверен, что подойдет. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2010, 12:03 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
prog13 Применительно к моей задаче как использовать этот макрос? нет prog13Файл выложить не могу. На текущий момент в файле около 40 связей.. выложите микропример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2010, 13:50 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
нет=никак ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2010, 13:51 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
to Shamanus архив нужно распаковать в C:\TEMP. связи настроил на двух листах. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2010, 14:53 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
ап ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2010, 15:49 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
prog13, об этом речь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2010, 16:22 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
1001 - это январь 2010. но суть понял. Shamanus, спасибо огромное, то что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2010, 16:44 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
а со второго листа также нужно тащить только то среднее, которое соответствует указанному месяцу. то есть расчет на март 2010 (каталог 1003) - нужна ячейка со второго листа $D$8, соответствующая среднему на март 2010. ну я по аналогии тогда буду смещать в зависимости от месяца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2010, 16:52 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
Shamanus, не подскажите, как в коде оставить в формуле "134" и "115" без изменений, а изменять только после знака подчеркивания? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2010, 17:17 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
prog13, не совсем понял, что нужно. Если нужно "склеивать" предложение, то фиксируете также как я написал Код: plaintext 1. 2. 3. 4. 5. т.е. в Вашем решении можно так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. но есть и другой способ. Есть подмена. например было так автор'134_1001.xls'$B$1 /'115_1001.xls'$B$2 нужно так автор'134_1002.xls'$B$1 /'115_1002.xls'$B$2 Код: plaintext поэтому способов масса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2010, 17:42 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
Спасибо за помощь, InStr() походу то, что нужно. Буду пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2010, 08:44 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
использую способ разложения формулы на составные части. когда во внешней книге имя листа "Лист1", все корректно работает. Но у меня есть лист во внешней книге с именем "Форма 2", и при пересчете ячейки с показателем, ссылающимся на этот лист, формула выдает ошибку "ИМЯ?". В VBA коде указывал и напрямую "Форма 2", и переменную, все равно ошибка. Скопировал имя листа, тоже не работает. Но когда в формулу в ячейке вставляю имя листа (Форма 2), все пересчитывает. Чета с кодировкой походу. А где ее проставить, непонятно. Может кто сталкивался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2010, 13:39 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
у меня в операторе Run были проблемы, если в имени есть пробелы или знак минус, может и тут что то подобное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2010, 14:12 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
я переименовал в просто "Форма" , все равно после отработки макроса ошибка "ИМЯ?", а когда исправляю в строке формулы, все путем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2010, 14:21 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
без приведенного кода трудно судить частая ошибка, когда путают, например, свойства Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2010, 15:48 |
|
||
|
Excel 2007 Связь с большим кол-вом книг для расчета
|
|||
|---|---|---|---|
|
#18+
записал макрос с нужной формулой, в нем используются английские названия формул (INDEX,MATCH), привел в соответствие свой код с записанным макросом (адреса $С$1 заменил на R1C3), и все прекрасно посчиталось, даже несмотря на название листа "Форма 2". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2010, 16:12 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=148&tid=2177576]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 339ms |

| 0 / 0 |
