Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обработка данных с Excel

15K
01 августа 2006 года
sanders
6 / / 14.02.2006
Подскажите пожалуйста, каким образом можно узнать среднее арифметическое столбца, минимум, максимум - неважно,
интересно какой функцией можно это узнать, не загружая цифры всего столбца из файла в функцию, а обратившись только одной командой?
405
02 августа 2006 года
Dmitrii
554 / / 16.12.2004
[QUOTE=sanders]... каким образом можно узнать среднее арифметическое столбца, минимум, максимум...[/QUOTE]
Смотрите список статистических функций.
Среднее арифметическое: [color=blue]СРЗНАЧ()[/color], [color=blue]СРЗНАЧА()[/color].
Минимум: [color=blue]МИН()[/color], [color=blue]МИНА()[/color].
Максимум: [color=blue]МАКС()[/color], [color=blue]МАКСА()[/color].
Если собираетесь работать с макросом, то можете использовать функции - члены класса WorksheetFunction: [color=blue]Average()[/color], [color=blue]Min()[/color], [color=blue]Max()[/color].
[QUOTE=sanders]... интересно какой функцией можно это узнать, не загружая цифры всего столбца из файла в функцию, а обратившись только одной командой?[/QUOTE]
Как это понимать?
15K
02 августа 2006 года
sanders
6 / / 14.02.2006
Вы меня неправильно поняли.
Вот пример-
xlApp.Range("A:A,C:C").Select() - в этом случае происходит select,

А как будет выглядеть команда, выдающая среднее значение столбца?
Примерно average=xlApp.Range("A:A").Average() (этот пример плод моей фантазии, он не работает, просто показать мое намерение получить значение).
Сколько ни копался в нете и документации, не нашел ничего...
15K
02 августа 2006 года
vkodor
41 / / 04.07.2006
так Dmitrii написал же "WorksheetFunction"

Average = xlApp.WorksheetFunction.Average(xlApp.Range("A:A"))
275
02 августа 2006 года
pashulka
985 / / 19.09.2004
Если в указанном диапазоне будет наличествовать хотя бы ячейка содержащая значение ошибки, то использование об'екта WorksheetFunction приведёт к возникновению ошибки. Однако, если использовать нижеопубликованный вариант, то можно обойтись без использования On Error ...

 
Код:
vAverage = xlApp.Average(xlApp.Range("A:A,C:C"))
If IsError(vAverage) = True Then
   MsgBox "В указанном столбце есть значение ошибки", _
   vbOKOnly + vbSystemModal, "Ошибка пользователя !!!"
End If
15K
02 августа 2006 года
sanders
6 / / 14.02.2006
Ругается,
"ComException was unhandled,
Exception from HRESULT: 0x800A03EC"

Пробовал оба варианта, эксель-файл в порядке, другие операции удаются :(
15K
03 августа 2006 года
vkodor
41 / / 04.07.2006
Код:
Dim xlApp As Excel.Application
    Dim xlWb As Excel.Workbook
    Dim vAverage
    Set xlApp = New Excel.Application
    Set xlWb = xlApp.Workbooks.Open("C:\Temp.xls")
    With xlWb.Worksheets(1)
        vAverage = xlApp.Average(.Range("A:A"), .Range("C:C"))
    End With
    If IsError(vAverage) = True Then
        MsgBox "В указанном столбце есть значение ошибки", _
        vbOKOnly + vbSystemModal, "Ошибка пользователя !!!"
    End If
    xlWb.Close
    Set xlWb = Nothing
    Set xlApp = Nothing
15K
03 августа 2006 года
sanders
6 / / 14.02.2006
vkodor, все именно так и было прописано,
сработал последний вариант параметров для Average,
всем спасибо нечеловеческое, особенно vkodor!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог