Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Среднее значение наработки системы между отказами - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Среднее значение наработки системы между отказами
pernatij4 Дата: Понедельник, 23.09.2019, 20:31 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Уважаемые оппоненты, имеется ряд значений работы системы

1
2
3
4
...
145
0
146
147
...
1098
0
...
, в которой 0 указывает на то что система дала сбой, как правильно составить макрос на выведение значений между отказами, т.е. между нулями.

Заранее спасибо, за то что уделили Ваше бесценное время
С Уважением, Александр
 
Ответить
СообщениеУважаемые оппоненты, имеется ряд значений работы системы

1
2
3
4
...
145
0
146
147
...
1098
0
...
, в которой 0 указывает на то что система дала сбой, как правильно составить макрос на выведение значений между отказами, т.е. между нулями.

Заранее спасибо, за то что уделили Ваше бесценное время
С Уважением, Александр

Автор - pernatij4
Дата добавления - 23.09.2019 в 20:31
K-SerJC Дата: Вторник, 24.09.2019, 08:01 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
так можно
[vba]
Код

Sub tuk()
With Me.Sheets(1)
lr = .Cells(Rows.Count, 1).End(xlUp).Row
For f = 1 To lr
Sum = 0
st = f
ret1:
If .Cells(st, 1).Value > 0 Then
Sum = Sum + .Cells(st, 1).Value
st = st + 1
If st <= lr Then GoTo ret1 Else .Cells(f, 2).Value = Sum / (st - f): f = st
Else
.Cells(f, 2).Value = Sum / (st - f)
f = st
End If
Next f
End With
End Sub
[/vba]


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщениетак можно
[vba]
Код

Sub tuk()
With Me.Sheets(1)
lr = .Cells(Rows.Count, 1).End(xlUp).Row
For f = 1 To lr
Sum = 0
st = f
ret1:
If .Cells(st, 1).Value > 0 Then
Sum = Sum + .Cells(st, 1).Value
st = st + 1
If st <= lr Then GoTo ret1 Else .Cells(f, 2).Value = Sum / (st - f): f = st
Else
.Cells(f, 2).Value = Sum / (st - f)
f = st
End If
Next f
End With
End Sub
[/vba]

Автор - K-SerJC
Дата добавления - 24.09.2019 в 08:01
pernatij4 Дата: Среда, 25.09.2019, 14:08 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
K-SerJC, огромное спасибо, буду осваивать. еще много чего не знаю но все очень удобно
 
Ответить
СообщениеK-SerJC, огромное спасибо, буду осваивать. еще много чего не знаю но все очень удобно

Автор - pernatij4
Дата добавления - 25.09.2019 в 14:08
pernatij4 Дата: Среда, 25.09.2019, 14:10 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
K-SerJC, если Вас не затруднит, можете пжл добавить комментарии к строкам
[vba]
Код
With Me.Sheets(1)
lr = .Cells(Rows.Count, 1).End(xlUp).Row
For f = 1 To lr
Sum = 0
st = f
ret1:
If .Cells(st, 1).Value > 0 Then
Sum = Sum + .Cells(st, 1).Value
st = st + 1
If st <= lr Then GoTo ret1 Else .Cells(f, 2).Value = Sum / (st - f): f = st
Else
.Cells(f, 2).Value = Sum / (st - f)
f = st
[/vba]
Спасибо
 
Ответить
СообщениеK-SerJC, если Вас не затруднит, можете пжл добавить комментарии к строкам
[vba]
Код
With Me.Sheets(1)
lr = .Cells(Rows.Count, 1).End(xlUp).Row
For f = 1 To lr
Sum = 0
st = f
ret1:
If .Cells(st, 1).Value > 0 Then
Sum = Sum + .Cells(st, 1).Value
st = st + 1
If st <= lr Then GoTo ret1 Else .Cells(f, 2).Value = Sum / (st - f): f = st
Else
.Cells(f, 2).Value = Sum / (st - f)
f = st
[/vba]
Спасибо

Автор - pernatij4
Дата добавления - 25.09.2019 в 14:10
K-SerJC Дата: Среда, 25.09.2019, 15:00 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
только сотрите код в своем посте, или оформите его тегом, согласно правил форума.
[vba]
Код

Sub tuk()
With Me.Sheets(1) ' используем сокращенное обращение к объектам листа 1
lr = .Cells(Rows.Count, 1).End(xlUp).Row ' вычисляем последнюю сроку в первом столбце
For f = 1 To lr ' цикл по значениям
Sum = 0
st = f
ret1:
If .Cells(st, 1).Value > 0 Then ' если не 0 со суммируем значение и переходм на следующее
Sum = Sum + .Cells(st, 1).Value
st = st + 1
If st <= lr Then GoTo ret1 Else .Cells(f, 2).Value = Sum / (st - f): f = st ' если закончились значения завершаем цикл
Else
.Cells(f, 2).Value = Sum / (st - f) ' рассчитываем среднее значение
f = st
End If
Next f
End With
End Sub
[/vba]


Благими намерениями выстелена дорога в АД.

Сообщение отредактировал K-SerJC - Среда, 25.09.2019, 15:38
 
Ответить
Сообщениетолько сотрите код в своем посте, или оформите его тегом, согласно правил форума.
[vba]
Код

Sub tuk()
With Me.Sheets(1) ' используем сокращенное обращение к объектам листа 1
lr = .Cells(Rows.Count, 1).End(xlUp).Row ' вычисляем последнюю сроку в первом столбце
For f = 1 To lr ' цикл по значениям
Sum = 0
st = f
ret1:
If .Cells(st, 1).Value > 0 Then ' если не 0 со суммируем значение и переходм на следующее
Sum = Sum + .Cells(st, 1).Value
st = st + 1
If st <= lr Then GoTo ret1 Else .Cells(f, 2).Value = Sum / (st - f): f = st ' если закончились значения завершаем цикл
Else
.Cells(f, 2).Value = Sum / (st - f) ' рассчитываем среднее значение
f = st
End If
Next f
End With
End Sub
[/vba]

Автор - K-SerJC
Дата добавления - 25.09.2019 в 15:00
pernatij4 Дата: Пятница, 27.09.2019, 14:59 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
K-SerJC, благодарю, очень жалею что во времена студенчества использовал VBA не в полную силу, сейчас бы на простых вопросах не спотыкался бы
 
Ответить
СообщениеK-SerJC, благодарю, очень жалею что во времена студенчества использовал VBA не в полную силу, сейчас бы на простых вопросах не спотыкался бы

Автор - pernatij4
Дата добавления - 27.09.2019 в 14:59
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!