Заполнение переменной при формировании формулы Excel | |
---|---|
descent52 Сообщений: 675 Откуда: Саров Дата регистрации: 26.07.2007 |
Добрый день.
Заполняю лист Excel объёмами и формулами. Формулы загоняю в переменные: frml1=frml1+"G"+Alltrim(Str(i))+"*H"+Alltrim(Str(i)) Всё работает, летает и шуршит. И в конце листа надо вставить итоговую формулу по разным ячейкам нарастающим итогом: frml_1=frml_1+"H"+Alltrim(Str(i))+"+" ... frml_1=frml_1+"H"+Alltrim(Str(i)) Если строк заполнения не очень много, то итоговая формула в итоге имеет следующий вид на листе экселя "=H6+H7+H8+H9+H10+H11+H12+H13+H16+H19+H22+H25+H28+H29+H32+H33+H34+H35+H36+H39+H42+H45+H46+H47+H48+H51+H52 " А вот если строк за 700 , то переменная сваливается- OLE error code 0x8007000e: Недостаточно памяти для завершения операции Пытаюсь обойти это при помощи TEXTMERGE, но пока не удачно. Подскажите, как обойти этот момент |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Ограничение на длину строки для Excel Textmerge не решит. Как, впрочем, и другие танцы со стороны фокса. Мне вот непонятно, а зачем повторно суммировать все, если можно для итогов суммировать только подитоги? ------------------ Лень - это неосознанная мудрость. |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
Penner Сообщений: 4102 Откуда: Muenster Дата регистрации: 26.04.2002 |
=SUMME(H6:H16)+SUMME(H32:H35)...
------------------ Никогда не откладывайте на завтра, то, о чем можно забыть навсегда Исправлено 1 раз(а). Последнее : Penner, 15.12.10 10:40 |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
descent52 Сообщений: 675 Откуда: Саров Дата регистрации: 26.07.2007 |
Если считать только подитоги, то и подитогов выше крыши. Всё равно вываливается ошибка. Слишком много подитогов и итогов.
Значит танцы с бубном мне не помогут? |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
Penner Сообщений: 4102 Откуда: Muenster Дата регистрации: 26.04.2002 |
может проще тогда посчитать сумму в фоксе?
------------------ Никогда не откладывайте на завтра, то, о чем можно забыть навсегда |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
А подитоги для подитогов? Кроме двух уровней ничего представить невозможно? Цитата:Увы. ------------------ Лень - это неосознанная мудрость. |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
pioner-v Сообщений: 1656 Дата регистрации: 01.05.2010 |
А что делаете-то? Пустографку документа EXCEL для последующего заполнения его "вручную"? |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
descent52 Сообщений: 675 Откуда: Саров Дата регистрации: 26.07.2007 |
Да я бы рад вместо формулы поставить итоговую цифру из фокса. Но экономистам нужна формула.
Вроде как осенило. Таблица из экселя представляет собой вывод объёмов по предприятиям. Для каждого предприятия в ячейке F есть строка-Итого по предприятию. И вот такую формулу можно втюхнуть =СУММЕСЛИ(F4:G905;"=Итого по предприятию";H4:H905) |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
pioner-v Сообщений: 1656 Дата регистрации: 01.05.2010 |
Нельзя пользователю-экономисту давать право корректировать выходной документ. Будет "бардак" ... |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
descent52 Сообщений: 675 Откуда: Саров Дата регистрации: 26.07.2007 |
Согласен. Предлагаю увольнять всех экономистов в конце года, ибо житья от них нет. Подскажите, что нужно сделать в фоксе, чтобы при вставке формулы SUM или SUMIF в ячейку Экселя из фокса, формула автоматически рассчитывалась при загрузке Экселя? Если в ячейке стоит простенькая формула, по типу '=G61*H61' , то эксель ее рассчитывает. А вот как только ставлю формулу '=SUM(H3:H5)' или '=СУММЕСЛИ(F6:G630;"Итого по потребителю";H6:H630)' то эксель на экране вместо результата выдает #ИМЯ? И чтобы результат посчитался, надо встать на эту формулу и нажать 'интер'. |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Обычно это говорит об ошибке в формуле. Вы этого не знали? Или думаете, что excel для разнооборазия просто врет? Цитата:Вот и ищите разницу между тем, что вставляете и тем, что таки потом оказывается в ячейке. ------------------ Лень - это неосознанная мудрость. |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
descent52 Сообщений: 675 Откуда: Саров Дата регистрации: 26.07.2007 |
[quote ssa]Обычно это говорит об ошибке в формуле. Вы этого не знали? Или думаете, что excel для разнооборазия просто врет?[quote]
В том то и дело что нет никакой ошибки. В ячейке стоит формула =СУММЕСЛИ(F6:G63;"Итого по потребителю";H6:H63) но отображается как #ИМЯ? Если я нажимаю мышкой на ячейку два раза и нажимаю интер, то формула рассчитывается и выдает правильное значение. |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Это сообщение об ошибке! Цитата:Вы думаете, что повторение несколько раз одного утверждения изменит истинность утверждения? Или изменит поведение Excel. Или вы просто не читали, что я написал? ------------------ Лень - это неосознанная мудрость. |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Приведи код которым прописывается формула СУММАЕСЛИ в ячейку.
------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
1) Формулу присваивать не свойству .Value, а свойству .Formula - в английской транскрипции, или в .FormulaLocal в локализованной (хотя это извращение - мало ли какой "русский язык" экселя у пользователя окажется).
2) Формулы удобнее писать в нотации R1C1 а не A1 - она достаточно простая для понимания и очень удобна для "относительной" адресации ячеек - плюс не нужно городить мега-функции по переводу номера колонки в соответствующие экселевские "буквы". Соответственно использовать свойство .FormulaR1C1 3) Изучить функцию экселя Промежуточные.Итоги (SUBTOTAL) и одноименный инструмент экселя (метод Subtotal объекта Range при автоматизации) - он позволяет избавиться от подобных идиотских километровых формул. Формула позволяет просто пропускать при суммировании ячейки, где находится не число, а такая же формула. А инструмент Subtotal позволяет автоматически расставить соответствующие формулы (добавив при этом строки для промежуточных и окончательных итогов), и создать "структуру" документа - для удобного "схлопывания/разворачивания" простыни данных по различным уровням группировки. На форуме обсуждалось, как использовать всё это из фокса. ------------------ WBR, Igor |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
descent52 Сообщений: 675 Откуда: Саров Дата регистрации: 26.07.2007 |
Итак пробую
tmp1='"' tmp="SUMIF(F6:G"+ALLTRIM(STR(i))+";"+tmp1+"Итого по потребителю"+tmp1+";H6:H"+ALLTRIM(STR(i))+")" .Cells(i+1,8).Formula="="+tmp итак пробую tmp1='"' .Cells(i+1,8).Formula="=SUMIF(F6:G"+ALLTRIM(STR(i))+";"+tmp1+"Итого по потребителю"+tmp1+";H6:H"+ALLTRIM(STR(i))+")" всё равно выдает #ИМЯ? Если я нажимаю мышкой на ячейку и два раза и кликаю, то формула рассчитывается и выдает правильное значение. В идеале хочется формулу =СУММЕСЛИ(F6:G447;"Итого по потребителю";H4:H447) |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Проверь тест:
------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Со сложными (многоуровневыми) итогами получается не очень красиво - эксель тупит на "общих" итоговых строках (переставляет их местами), но такой отчёт уже проще довести до ума, чем всё поячеечно забивать, даже если удастся обойтись без "километровых" формул. ------------------ WBR, Igor |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Промежуточные итоги тянут за собой наличие столбцов по изменениям данных в которых они формируются, а это не всегда допустимо в отчете. Их (эти столбцы) нужно либо скрывать, либо копировать результат в другое место как значения, ну и т.д. и т.п.
Хотя не спорю инструмен полезный и нужный. ------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. Исправлено 1 раз(а). Последнее : AleksM, 15.12.10 17:53 |
Re: Заполнение переменной при формировании формулы Excel | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Инструмент автоматического построения промежуточных итогов - да, нуждается в таких полях. Сама же функция рабочего листа SUBTOTAL(), которой этот инструмент широко пользуется, совершенно нет. Ей можно подсовывать произвольный диапазон, от этого её работа не изменится. Просто достаточно утомительно самому вставлять строки для промежуточных итогов и прописывать формулы в них параллельно подсчитывая размеры "поддиапазонов суммирования". Хотя это вполне возможно, но уж от написания примера избавь меня
------------------ WBR, Igor |
© 2000-2024 Fox Club  |