Форум » [x]Harbour » Вопрос по Excel ? » Ответить

Вопрос по Excel ?

Andrey: Всем привет. Вопрос к знатокам Excel-я, как подсчитать сумму ВСЕХ значений с минусом и с плюсом ? Вот есть таблица из многих столбцов. Как сделать формулу для расчёта этих значений по 2-му столбцу ?

Ответов - 72, стр: 1 2 3 4 All

fil: Вытащи нужный столбец в массив, суммируй(или чего там) и вставь результат. Быстрее будет

Andrey: fil пишет: Вытащи нужный столбец в массив, суммируй(или чего там) и вставь результат. Быстрее будет Их 10 штук (столбцов) которые нужно считать и вдобавок по 50-60 тыс.записей...

SadStar3333: =СУММЕСЛИ(C3:C9;"<0";C3:C9)

Dima: Andrey Таблицу из Harbour создаешь (заполняешь) ?

santy: суммирование положительных и отрицательных чисел: http://www.cyberforum.ru/vba/thread118931.html

Andrey: Dima пишет: Таблицу из Harbour создаешь (заполняешь) ? DBF создаю хХарбором. Потом показываю в FastReport/ Ну и еще отдельное меню вызова EXCEL с этим DBF. Вот и хотелось бы макрос прикрутить, или написать какую формулу писать.

Andrey: santy пишет: суммирование положительных и отрицательных чисел: http://www.cyberforum.ru/vba/thread118931.html Спасибо !

Andrey: SadStar3333 пишет: =СУММЕСЛИ(C3:C9;"<0";C3:C9) А здесь такого нет: http://www.cyberforum.ru/vba/thread118931.html Можно посчитать формулой непосредственно на листе: =СУММЕСЛИ(A1:A20;"<0") =СУММЕСЛИ(A1:A20;">0")

Haz: Andrey пишет: А здесь такого нет: Андрей , в самом Excel отличная справка по функциям СУММЕСЛИ(диапазон;условия;диапазон_суммирования) Диапазон — диапазон ячеек, оцениваемый по условиям. Ячейки в каждом диапазоне должны содержать числа, имена, массивы или ссылки, содержащие числа. Пустые ячейки и ячейки, содержащие текстовые значения, не учитываются. Условия — критерий в форме числа, выражения или текста, определяющий, какие ячейки должны суммироваться. Например, аргумент «условие» может быть выражен как 32, "32", ">32" или "яблоки". Диапазон_суммирования — фактические ячейки, которые необходимо просуммировать, если соответствующие им ячейки в диапазоне отвечают условиям. Если аргумент «диапазон_суммирования» опущен, ячейки диапазона и оцениваются по условиям, и суммируются в том случае, если они им соответствуют

Dima: Haz пишет: Андрей , в самом Excel отличная справка по функциям Он их не читает

Andrey: Dima пишет: Он их не читает Лучше попробовать, если не получается то спросить...

Andrey: Как на Харборе в Экселе сделать - сохранение файла в формате CVS ? Т.е. файл открыл через ОЛЮ, а как дальше сделать - сохранение файла ?

Петр: Функция Excel VBA SaveAs(..) Параметр #2 - FileFormat := xlCSV

Dima: Петр пишет: Параметр #2 - FileFormat := xlCSV Как обычно Andrey обломился просто погуглить

Andrey: Петр пишет: Параметр #2 - FileFormat := xlCSV Спасибо ! Но как я и подозревал - Эксель опять сопротивляется... Открываю Эксел в скрытом режиме - oExcel:Visible := .F. // НЕ Показывать EXCEL Сделал запись в файл, а просто так Эксел не закрывается. Вот такая табличка появляется: Как этот диалог убрать, чтобы юзера не пугались ?

Dima: oExcel:DisplayAlerts:=.F.

Andrey: Dima СПАСИБО !

Andrey: Что-то иногда вылетает программа вот с такой ошибкой: Перед тем как записывать файл, я удаляю существующий. [pre2] IF FILE( cFileSave ) DELETEFILE( cFileSave ) // Чтобы Excel не приставал в вопросом "Такой файл уже существует" ENDIF INKEYGUI(500) oBook:SaveAs( cFileSave, xlCSV ) // строка 97 [/pre2] Что за ошибка такая и как убрать вылет ?

Петр: Andrey пишет: Что за ошибка такая и как убрать вылет ? 1. У обьекта oBook нет метода SaveAs 2. Быть внимательным и хоть как-нибудь обработывать ошибки (проверка возращаемых значений, BEGIN SEQUENCE ) - тормоза придумали не трУсы

Andrey: Петр пишет: Быть внимательным и хоть как-нибудь обработывать ошибки (проверка возращаемых значений, BEGIN SEQUENCE ) Точно... Нашёл ошибку. Повис в памяти скрытый Эксель с файлом, т.е. файл заблокирован на запись. Вот так работает: [pre2] .... cFileName := cPath + "\" + cFileXls cFileSave := cPath + "\" + cFileCsv ..... oExcel := TOleAuto():New( "Excel.Application" ) oExcel:Visible := .F. // НЕ Показывать EXCEL oExcel:DisplayAlerts := .F. // не приставать с запросами oExcel:Workbooks:Open( cFileName, 0 ) oBook := oExcel:ActiveSheet() IF FILE( cFileSave ) // Чтобы Excel не приставал в вопросом "Такой файл уже существует" nErr := DELETEFILE(cFileSave) IF nErr == 0 oBook:SaveAs( cFileSave, xlCSV ) lRet := .T. ELSE cMsg := REPLICATE( "-._.", 16 ) + ";;" cMsg += "Ошибка удаления файла: "+cFileSave+" !; Ошибка: "+HB_NtoS(nErr)+";;" cMsg += "Файл занят другим процессом в памяти !;;" cMsg += REPLICATE( "-._.", 16 ) + ";;" cMsg := AtRepl( ";", cMsg, CRLF ) MsgStop( cMsg , "Ошибка!" ) lRet := .F. ENDIF ELSE oBook:SaveAs( cFileSave, xlCSV ) lRet := .T. ENDIF oExcel:Quit() [/pre2] Петр пишет: 1. У обьекта oBook нет метода SaveAs А как тогда писать правильно ?



полная версия страницы