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

Вход

Регистрация

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

 

= Мир MS Excel/Логический подсчет - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Логический подсчет
Cerentiy Дата: Четверг, 14.02.2013, 06:59 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Помогите решить проблему. Стоит оборудование которое считает расход сыпучего материала. Изменения веса вносятся в excel таблицу. В приложенном документе фиксируется вес до операции и вес после операции. Статус операции фиксируется в последней колонке. 0-отгрузка. 1-загрузка. Моя задача автоматизировать расчет израсходованного материала. Но проблема заключается еще и в том что есть моменты когда статус операции произвольно меняется хотя по факту не загрузки не отгрузки нет. Это можно увидеть например:00000000000(это отгрузка) 11111111111111111(Это загрузка) 00001000100111100011111100000(это самопроизвольное изменение). Задумка заключается в следующем можно ли опираясь на стабильный сигнал загрузки это(11111111111111111) от 10 единичек брать начальное значение при смене 0 на 1 и конечное 1 на 0 копировать у ячейки и дальше высчитывать сумму загрузки. Расчет нужно делать за суточную смену. За смену возможно в среднем от до 12 загрузок. Помогите советом. Копию файла прикладываю.

Ниже выложил изображения с описанием и файл с более наглядными изменениями
К сообщению приложен файл: 2529881.rar (35.3 Kb)


Сообщение отредактировал Cerentiy - Четверг, 14.02.2013, 11:46
 
Ответить
СообщениеПомогите решить проблему. Стоит оборудование которое считает расход сыпучего материала. Изменения веса вносятся в excel таблицу. В приложенном документе фиксируется вес до операции и вес после операции. Статус операции фиксируется в последней колонке. 0-отгрузка. 1-загрузка. Моя задача автоматизировать расчет израсходованного материала. Но проблема заключается еще и в том что есть моменты когда статус операции произвольно меняется хотя по факту не загрузки не отгрузки нет. Это можно увидеть например:00000000000(это отгрузка) 11111111111111111(Это загрузка) 00001000100111100011111100000(это самопроизвольное изменение). Задумка заключается в следующем можно ли опираясь на стабильный сигнал загрузки это(11111111111111111) от 10 единичек брать начальное значение при смене 0 на 1 и конечное 1 на 0 копировать у ячейки и дальше высчитывать сумму загрузки. Расчет нужно делать за суточную смену. За смену возможно в среднем от до 12 загрузок. Помогите советом. Копию файла прикладываю.

Ниже выложил изображения с описанием и файл с более наглядными изменениями

Автор - Cerentiy
Дата добавления - 14.02.2013 в 06:59
Pelena Дата: Четверг, 14.02.2013, 08:42 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
Цитата (Cerentiy)
Копию файла прикладываю

Чтобы правильно приложить файл, прочитайте Правила форума


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Цитата (Cerentiy)
Копию файла прикладываю

Чтобы правильно приложить файл, прочитайте Правила форума

Автор - Pelena
Дата добавления - 14.02.2013 в 08:42
AlexM Дата: Четверг, 14.02.2013, 08:51 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Хочется поразмышлять, пока вы файл не дали
Вот вы показали сигнал
00001000100111100011111100000
Покажите в этой последовательности нулей и единиц, жирным шрифтом, где началась загрузка и где закончилась. Т.е. всю загрузку выделите.
Одиночная единичка или ноль - это больше на помеху похоже. Сколько должно быть подряд одинаковых значений, чтобы точно определить начало и конец загрузки?



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Четверг, 14.02.2013, 09:46
 
Ответить
СообщениеХочется поразмышлять, пока вы файл не дали
Вот вы показали сигнал
00001000100111100011111100000
Покажите в этой последовательности нулей и единиц, жирным шрифтом, где началась загрузка и где закончилась. Т.е. всю загрузку выделите.
Одиночная единичка или ноль - это больше на помеху похоже. Сколько должно быть подряд одинаковых значений, чтобы точно определить начало и конец загрузки?

Автор - AlexM
Дата добавления - 14.02.2013 в 08:51
Cerentiy Дата: Четверг, 14.02.2013, 09:58 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Копия документа. Извиняюсь не заметил что не прикрепился. Там будет явно видно когда загрузка когда отгрузка
К сообщению приложен файл: 1990774.rar (35.3 Kb)
 
Ответить
СообщениеКопия документа. Извиняюсь не заметил что не прикрепился. Там будет явно видно когда загрузка когда отгрузка

Автор - Cerentiy
Дата добавления - 14.02.2013 в 09:58
Serge_007 Дата: Четверг, 14.02.2013, 10:03 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Cerentiy)
будет явно видно когда загрузка когда отгрузка

В примере 2000 строк (нафига?!, если достаточно 20-и) и ни капли полезной информации


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Cerentiy)
будет явно видно когда загрузка когда отгрузка

В примере 2000 строк (нафига?!, если достаточно 20-и) и ни капли полезной информации

Автор - Serge_007
Дата добавления - 14.02.2013 в 10:03
Формуляр Дата: Четверг, 14.02.2013, 10:42 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Cerentiy,
не проще ли определять загрузку/выгрузку по изменению веса?


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеCerentiy,
не проще ли определять загрузку/выгрузку по изменению веса?

Автор - Формуляр
Дата добавления - 14.02.2013 в 10:42
Cerentiy Дата: Четверг, 14.02.2013, 11:41 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Фиксирование данных происходит так. Первый столбик адрес устройства(к задаче не имеет отношения) 2 столбик вес до начала операции в данном случае отгрузка или загрузка 3й столбик вес после операции. далее дата время и 6й столбик операция . Опишу примером. Есть емкость в которую ссыпают материал. В режиме ожидания вес фиксированный устройство ничего не делает. Начинают подавать сырье т.е. засыпать вес начинает меняться на увеличение в столбике 6 появляется значение операции 1. Значения записываются в таблицу до тех пор пока не перестанет меняться вес. как только остановили подачу сырья в емкость фиксация значений не производится. Далее открывают клапан отгрузки сырья вес начинает меняться на убывание в 6 столбике значение меняется на 0. Фиксируются показания веса на убывание. Т.е. когда происходит изменение веса вверх операция 1 если вниз 0 и при любом изменении прибор его фиксирует смотря на то какое изменение происходит поэтому и присваивает состояние операции в виде 0 и 1 . Но есть и места когда эта самая емкость просто качается от ветра в этот момент и происходит фиксирование ошибочных данных за счет смещения центра тяжести прибор понимает это как изменения. Попробую объяснить с помощью картинки. Первый файл был не очень удачный прикладываю более наглядный.
К сообщению приложен файл: 5764909.rar (28.0 Kb)
 
Ответить
СообщениеФиксирование данных происходит так. Первый столбик адрес устройства(к задаче не имеет отношения) 2 столбик вес до начала операции в данном случае отгрузка или загрузка 3й столбик вес после операции. далее дата время и 6й столбик операция . Опишу примером. Есть емкость в которую ссыпают материал. В режиме ожидания вес фиксированный устройство ничего не делает. Начинают подавать сырье т.е. засыпать вес начинает меняться на увеличение в столбике 6 появляется значение операции 1. Значения записываются в таблицу до тех пор пока не перестанет меняться вес. как только остановили подачу сырья в емкость фиксация значений не производится. Далее открывают клапан отгрузки сырья вес начинает меняться на убывание в 6 столбике значение меняется на 0. Фиксируются показания веса на убывание. Т.е. когда происходит изменение веса вверх операция 1 если вниз 0 и при любом изменении прибор его фиксирует смотря на то какое изменение происходит поэтому и присваивает состояние операции в виде 0 и 1 . Но есть и места когда эта самая емкость просто качается от ветра в этот момент и происходит фиксирование ошибочных данных за счет смещения центра тяжести прибор понимает это как изменения. Попробую объяснить с помощью картинки. Первый файл был не очень удачный прикладываю более наглядный.

Автор - Cerentiy
Дата добавления - 14.02.2013 в 11:41
Cerentiy Дата: Четверг, 14.02.2013, 11:44 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Объяснение в картинках
К сообщению приложен файл: 9270370.rar (80.8 Kb)
 
Ответить
СообщениеОбъяснение в картинках

Автор - Cerentiy
Дата добавления - 14.02.2013 в 11:44
Serge_007 Дата: Четверг, 14.02.2013, 11:45 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Cerentiy)
файл был не очень удачный прикладываю более наглядный

Пример всё такой же неудачный
Цитата (Serge_007)
2000 строк (нафига?!, если достаточно 20-и) и ни капли полезной информации

Если будете игнорировать мои предупреждения - начну делать Вам замечания


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Cerentiy)
файл был не очень удачный прикладываю более наглядный

Пример всё такой же неудачный
Цитата (Serge_007)
2000 строк (нафига?!, если достаточно 20-и) и ни капли полезной информации

Если будете игнорировать мои предупреждения - начну делать Вам замечания

Автор - Serge_007
Дата добавления - 14.02.2013 в 11:45
Cerentiy Дата: Четверг, 14.02.2013, 11:48 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Цитата (Формуляр)
не проще ли определять загрузку/выгрузку по изменению веса?


Посоветуйте как это можно сделать.
 
Ответить
Сообщение
Цитата (Формуляр)
не проще ли определять загрузку/выгрузку по изменению веса?


Посоветуйте как это можно сделать.

Автор - Cerentiy
Дата добавления - 14.02.2013 в 11:48
Cerentiy Дата: Четверг, 14.02.2013, 11:52 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Цитата (Serge_007)
Если будете игнорировать мои предупреждения - начну делать Вам замечания

Сделал изображения с разъяснениями посмотрите пожалуйста. Сообщение выше.
 
Ответить
Сообщение
Цитата (Serge_007)
Если будете игнорировать мои предупреждения - начну делать Вам замечания

Сделал изображения с разъяснениями посмотрите пожалуйста. Сообщение выше.

Автор - Cerentiy
Дата добавления - 14.02.2013 в 11:52
Hugo Дата: Четверг, 14.02.2013, 12:07 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Например
[vba]
Код
=SUMPRODUCT((B2:B38<C2:C38)*(C2:C38-B2:B38))
[/vba]
Ещё сюда привязать время...
[vba]
Код
=SUMPRODUCT((B2:B1000<C2:C1000)*(C2:C1000-B2:B1000)*(DAY(D2:D1000)=25))
[/vba]


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНапример
[vba]
Код
=SUMPRODUCT((B2:B38<C2:C38)*(C2:C38-B2:B38))
[/vba]
Ещё сюда привязать время...
[vba]
Код
=SUMPRODUCT((B2:B1000<C2:C1000)*(C2:C1000-B2:B1000)*(DAY(D2:D1000)=25))
[/vba]

Автор - Hugo
Дата добавления - 14.02.2013 в 12:07
Serge_007 Дата: Четверг, 14.02.2013, 12:10 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Cerentiy)
Сделал изображения с разъяснениями
На них ничего не разобрать
Цитата (Cerentiy)
как это можно сделать?
Приложите нормальный файл на два десятка строк с исходными данными, желаемым результатом и пояснениями, почему он получился такой


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Cerentiy)
Сделал изображения с разъяснениями
На них ничего не разобрать
Цитата (Cerentiy)
как это можно сделать?
Приложите нормальный файл на два десятка строк с исходными данными, желаемым результатом и пояснениями, почему он получился такой

Автор - Serge_007
Дата добавления - 14.02.2013 в 12:10
Hugo Дата: Четверг, 14.02.2013, 12:45 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Мой вариант выше неверный... Т.е. считает правильно, но там не только 1/0 врёт, но и вес тоже...
Можно подумать над UDF...


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеМой вариант выше неверный... Т.е. считает правильно, но там не только 1/0 врёт, но и вес тоже...
Можно подумать над UDF...

Автор - Hugo
Дата добавления - 14.02.2013 в 12:45
AlexM Дата: Четверг, 14.02.2013, 13:09 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
В столбце G единицы только там где загрузка. Помеха убрана
Формула "собиралась" в ячейке G11, а потом растянута вверх и низ.
Формула для G11
Код
=--((СЧЁТЕСЛИ(F$2:F11;1)=СТРОКА()-1)+(СУММ(F11:F20)=10)+ЕСЛИ(ЕОШ(СУММ(F2:F11)=10);0;(СУММ(F2:F11)=10))<>0)

Если формула правильно работает, то можно и сумму загрузки делать.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеВ столбце G единицы только там где загрузка. Помеха убрана
Формула "собиралась" в ячейке G11, а потом растянута вверх и низ.
Формула для G11
Код
=--((СЧЁТЕСЛИ(F$2:F11;1)=СТРОКА()-1)+(СУММ(F11:F20)=10)+ЕСЛИ(ЕОШ(СУММ(F2:F11)=10);0;(СУММ(F2:F11)=10))<>0)

Если формула правильно работает, то можно и сумму загрузки делать.

Автор - AlexM
Дата добавления - 14.02.2013 в 13:09
Hugo Дата: Четверг, 14.02.2013, 13:34 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Например на лист в ячейку:

Код
=load(B2:B1000,C2:C1000,D2:D1000,"24.11.2011",F2:F1000)

или можно так (но может считать дольше):

Код
=load(B:B,C:C,D:D,"24.11.2011",F:F)


Код в модуле:

[vba]
Код
Function load(wbefor As Range, wafter As Range, dataw As Range, ddpr As Date, act As Range)
      Dim cc As Range, i&, t
        
      Set wbefor = Intersect(wbefor.Parent.UsedRange, wbefor)
      Set wafter = Intersect(wafter.Parent.UsedRange, wafter)
      Set dataw = Intersect(dataw.Parent.UsedRange, dataw)
      Set act = Intersect(act.Parent.UsedRange, act)
        
          For i = 1 To act.Count
          If act(i) & act(i + 1) & act(i + 2) <> "000" Then
              If dataw(i) = ddpr Then t = t + wafter(i) - wbefor(i)
          End If
      Next
      load = t
End Function
[/vba]

Что-то примерно получается... Думаю точно не определить - т.к. на границе не понятно - это качнуло или ещё насыпали smile


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНапример на лист в ячейку:

Код
=load(B2:B1000,C2:C1000,D2:D1000,"24.11.2011",F2:F1000)

или можно так (но может считать дольше):

Код
=load(B:B,C:C,D:D,"24.11.2011",F:F)


Код в модуле:

[vba]
Код
Function load(wbefor As Range, wafter As Range, dataw As Range, ddpr As Date, act As Range)
      Dim cc As Range, i&, t
        
      Set wbefor = Intersect(wbefor.Parent.UsedRange, wbefor)
      Set wafter = Intersect(wafter.Parent.UsedRange, wafter)
      Set dataw = Intersect(dataw.Parent.UsedRange, dataw)
      Set act = Intersect(act.Parent.UsedRange, act)
        
          For i = 1 To act.Count
          If act(i) & act(i + 1) & act(i + 2) <> "000" Then
              If dataw(i) = ddpr Then t = t + wafter(i) - wbefor(i)
          End If
      Next
      load = t
End Function
[/vba]

Что-то примерно получается... Думаю точно не определить - т.к. на границе не понятно - это качнуло или ещё насыпали smile

Автор - Hugo
Дата добавления - 14.02.2013 в 13:34
Cerentiy Дата: Пятница, 15.02.2013, 12:30 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Цитата (AlexM)
Если формула правильно работает, то можно и сумму загрузки делать.

Подскажите как это можно опробовать.
 
Ответить
Сообщение
Цитата (AlexM)
Если формула правильно работает, то можно и сумму загрузки делать.

Подскажите как это можно опробовать.

Автор - Cerentiy
Дата добавления - 15.02.2013 в 12:30
Cerentiy Дата: Пятница, 15.02.2013, 12:30 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

"=load(B2:B1000,C2:C1000,D2:D1000,"24.11.2011",F2:F1000)"
Вставляю в ячейку ничего не происходит. Подскажите что делаю не так. Может функцию надо прописать на кириллице


Сообщение отредактировал Cerentiy - Пятница, 15.02.2013, 12:38
 
Ответить
Сообщение"=load(B2:B1000,C2:C1000,D2:D1000,"24.11.2011",F2:F1000)"
Вставляю в ячейку ничего не происходит. Подскажите что делаю не так. Может функцию надо прописать на кириллице

Автор - Cerentiy
Дата добавления - 15.02.2013 в 12:30
RAN Дата: Пятница, 15.02.2013, 12:40 | Сообщение № 19
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата (Hugo)
Код в модуле:


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата (Hugo)
Код в модуле:

Автор - RAN
Дата добавления - 15.02.2013 в 12:40
AlexM Дата: Пятница, 15.02.2013, 15:29 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Цитата (Cerentiy)
Подскажите как это можно опробовать.

Смотрите файл
К сообщению приложен файл: 1_new.rar (67.7 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Цитата (Cerentiy)
Подскажите как это можно опробовать.

Смотрите файл

Автор - AlexM
Дата добавления - 15.02.2013 в 15:29
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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