Страницы: 1 2 След.
RSS
Подсчет пробега в соответствии с текущими показаниями спиидометра и с учетом входящего километража
 
Для меня формула, еще сложнее предыдущей. Долбил, долбил и ничего не вышло. Пожалуйста! Помогите.  
Нужно написать формулу для подсчета каждодневного километража конкретного авто для ячейки L7 на листе «ПереносДаних». Показания спидометра на начало и конец дня, которые нужны для расчета дневного пробега,  смотри в ячейках J7 n K7, этого же листа.  
Сложность написания данной формулы, заключается в том, что при расчете каждодневного километража, надо учитывать входящий километраж на начало эксплуатации авто (см. ячейки Q3:Q5 на листе СпискиП) , по каждому авто.  
С ув. Муля!
 
Может не совсем понял, но гляньте файл.
 
{quote}{login=}{date=23.08.2011 06:15}{thema=}{post}Может не совсем понял, но гляньте файл.{/post}{/quote}  
Так. Не совсем правильно понял.  
Вот, что нужно получить в итоге, с учетом входящего пробега(в предыдущем - он не был учтен), я показал в новом примере, который прилагаю.  
На листе "КарткаОбліку" то, что надо получить я залил зеленым цветом (посчитано правильно), а вот вновь добавленые строки (считает не правильно), я выделил розовым.  
Следовательно, новые формулы, добавляют лишние 200 и 150 км.  
По сути, входящие остатки, должны вставиться только один раз. То есть, при вводе первой строки по каждому новому авто.  
Лиьо как то закрутить их в формулу расчета разницы, что в ячейке L7 на листе "ПереносДаних".  
К стати, в случае если входящий пробег нулевой,эта формула выдает ошибку.  
С ув. Муля!
 
Всем привет!  
Я жду ответ  
С ув.Муля!
 
И Вам привет.  
"На листе "КарткаОбліку" то, что надо получить я залил зеленым цветом (посчитано правильно), а вот вновь добавленые строки (считает не правильно), я выделил розовым."  
Цветом залиты только даннфые. Где формулы, которые неправильно (или хотя бы как-нибудь) считают?  
А не создать ли Вам, Муля, небольшой примерчик без лишних листов и данных? А то ведь разбираться не хочется.
 
А не создать ли Вам, Муля, небольшой примерчик без лишних листов и данных? А то ведь разбираться не хочется.  
 
Ув. Виктор!  
В принципе, это сделать е трудно.  
Но, думаю, что этот простой пример, в итоге  будет таким же сложным.  
Потому, как мне кожетя, решить эту не простую задачу, можно только используя все эти листы. А вот как, пока не догоняю.  
А формулу(ы) нужно химичить в одной или нескольких ячейках : J7, K7, L7, что находятся на листе "Перенос даних". И если это необходимо, в ячейке D21 на листе "ЗанестиДані".  
А механизм внесения даных такой.  
Сначала показания счетчика заносятся в ячейки D9 b D10 листа "ЗанестиДані" и в ячейке D21 Этого же листа, считаетсяпробег за день. Пока что эта ячейка нужна для визуального контроля. Но без него можно обойтись. И использовать эту ячейку в расчетах.  
Затем простыми ссылками даные из этого листа пропадают нп лист "ПереносДаних", в соответствуюшие ячейки. И уже из него, макросом, переносятся в карточку.  
Думаю что обяснил понятно.  
С ув. Муля!
 
Всем доброго здравия!  
Ну вот вроди как придумал, как достичь желанного результата. Вот только макрос нифига не получается.  
Суть предлагаемого способа.  
На даный момент, для подсчета и транспортирования в «КарткуОбліку» пробега авто , задействованы следующие ячейки:  
Ячейки D7, D9 и  D10  - на листе "ЗанестиДані", куда пользователь заносит даные.  
Ячейки  J7, K7, L7  -  что находятся на листе "Перенос даних", строка для контроля правильности этих даных.  
Диапазон ячеек Q3: Q6 -  что на листе «СписокП», в котором проставляется входящий километраж на начало эксплуатации авто.  
Диапазоны ячеек J10 J20, K10:K20, L10:L20 – что на листе, куда должны попасть данные.  
И имеется макрос «ПереносКилометраж()», с помощью которого заносятся данные в ячейки D7, D9 и  D10  листа "ЗанестиДані".  
 
На данный момент этот макрос берет цыфру показания спидометра на конец предыдущего рабочего дня,  из ячейки D7 и вставляет ее в ячейку D9 показание спидометра на начало текущего рабочего дня. А затем выкидывает  «InputBox», посредством которого, заполняется ячейка D10 показания спидометра на конец текущего рабочего дня и D8 номер путевого листа. Все эти действия происходят на листе ЗанестиДані".  
Сама ж ячейка D7, заполняется посредством формулы, которая ищет показания спидометра на конец предыдущего рабочего дня, в диапазоне ячеек K10: K20, на листе «КарткаОбліку». Критерий поиска : дата , которая стоит в ячейке F7 и Гос номер авто, смотри ячейка D2, листа "ЗанестиДані".  
Таким образом, входящий километраж на начало эксплуатации авто, сейчас не учитывется. И чтобы эти входящие остатки задействовать, необходимо макрос «ПереносКилометраж()» дополнить модулем, который бы сравнивал цыфру километража в ячейке D7 листа «ЗанестиДані" с соответствующей этому же авто цыфрой входящего километража. Смотри диапазон ячеек Q3: Q6 -  что на листе «СписокП». И если входящий остаток равен нолю, то модуль вставляет в ячейку D9  листа "ЗанестиДані" цифру 0. В противном случае, вносит в эту же ячейку, входящий километраж по конкретно взятому авто, который значится в ячейке D2 листа ЗанестиДані). Вот и все.  
Не знаю, може это же можна сделать и с помощью формулы.  
Пожалуйста, помогите Муле!  
С ув. Муля!
 
{quote}{login=Муля}{date=26.08.2011 07:43}{thema=}{post}Всем доброго здравия!  
Ну вот вроди как придумал, как достичь желанного результата. Вот только макрос нифига не получается.  
Суть предлагаемого способа.  
На даный момент, для подсчета и транспортирования в «КарткуОбліку» пробега авто , задействованы следующие ячейки:  
Ячейки D7, D9 и  D10  - на листе "ЗанестиДані", куда пользователь заносит даные.  
Ячейки  J7, K7, L7  -  что находятся на листе "Перенос даних", строка для контроля правильности этих даных.  
Диапазон ячеек Q3: Q6 -  что на листе «СписокП», в котором проставляется входящий километраж на начало эксплуатации авто.  
Диапазоны ячеек J10 J20, K10:K20, L10:L20 – что на листе, куда должны попасть данные.  
И имеется макрос «ПереносКилометраж()», с помощью которого заносятся данные в ячейки D7, D9 и  D10  листа "ЗанестиДані".  
 
На данный момент этот макрос берет цыфру показания спидометра на конец предыдущего рабочего дня,  из ячейки D7 и вставляет ее в ячейку D9 показание спидометра на начало текущего рабочего дня. А затем выкидывает  «InputBox», посредством которого, заполняется ячейка D10 показания спидометра на конец текущего рабочего дня и D8 номер путевого листа. Все эти действия происходят на листе ЗанестиДані".  
Сама ж ячейка D7, заполняется посредством формулы, которая ищет показания спидометра на конец предыдущего рабочего дня, в диапазоне ячеек K10: K20, на листе «КарткаОбліку». Критерий поиска : дата , которая стоит в ячейке F7 и Гос номер авто, смотри ячейка D2, листа "ЗанестиДані".  
Таким образом, входящий километраж на начало эксплуатации авто, сейчас не учитывется. И чтобы эти входящие остатки задействовать, необходимо макрос «ПереносКилометраж()» дополнить модулем, который бы сравнивал цыфру километража в ячейке D7 листа «ЗанестиДані" с соответствующей этому же авто цыфрой входящего километража. Смотри диапазон ячеек Q3: Q6 -  что на листе «СписокП». И если входящий остаток равен нолю, то модуль вставляет в ячейку D9  листа "ЗанестиДані" цифру 0. В противном случае, вносит в эту же ячейку, входящий километраж по конкретно взятому авто, который значится в ячейке D2 листа ЗанестиДані). Вот и все.  
Не знаю, може это же можна сделать и с помощью формулы.  
Пожалуйста, помогите Муле!  
С ув. Муля!{/post}{/quote}  
и еще вот єто.  
Пожалуйста помогите!
 
И так мало что понятно, так еще и с мовы переводить!  
Ну уж нет. :)
 
Если правильно понял.
 
Может так будет понятнее?  
Все лишнее убрал. Кое что перевел на русский язык. А ячейки, которые участвуют в расчетах, закрасил красным цветом.  
С ув. Муля!
 
{quote}{login=sva}{date=06.09.2011 05:13}{thema=}{post}Если правильно понял.{/post}{/quote}  
Ув. sva!  
Нет, неправильно понял. И, к сожалению, такой способ, не решает проблему.  
Так как, при вводе второй и так далее строк,в ячейке J7 на листе"ПереносДаних", и , сответственно, в ячейках диапазона  J10:J21, всегда будет ноль.  
А должно быть показание спидометра на начало текущего рабочего дня.  
С ув. Муля!
 
{quote}{login=Муля}{date=06.09.2011 05:48}{thema=Re: }{post}{quote}{login=sva}{date=06.09.2011 05:13}{thema=}{post}Если правильно понял.{/post}{/quote}  
Ув. sva!  
Нет, неправильно понял. И, к сожалению, такой способ, не решает проблему.  
Так как, при вводе второй и так далее строк,в ячейке J7 на листе"ПереносДаних", и , сответственно, в ячейках диапазона  J10:J21, всегда будет ноль.  
А должно быть показание спидометра на начало текущего рабочего дня.  
С ув. Муля!{/post}{/quote}  
Пардон!  
Пропустил название листа. Следует читать  ячейках диапазона J10:J21 на листе "КарткаОбліку"
 
Перечитав тему.
 
{quote}{login=sva}{date=06.09.2011 07:58}{thema=}{post}Перечитав тему.{/post}{/quote}  
Ув. sva!  
Этот вариант уже бЫл. Не работает.  
Поэтому, мне кажется, единственный выход - макрос.  
С ув. Муля!
 
Так там и есть макрос.  
Переделал ПереносКилометраж()
 
{quote}{login=Муля}{date=06.09.2011 05:48}  
Нет, неправильно понял. И, к сожалению, такой способ, не решает проблему....С ув. Муля!{/post}{/quote} Узнаю брата Мулю:-) Муля, когда научимся хотя бы вопросы формулировать понятно для всех? И убедительный совет - прислушайтесь к vikttur-у от 25.08.2011, 15:48. Старайтесь максимально упростить вопрос для читателей темы. На форуме нет наемных работников, а в перерывах между делом мало желающих разбираться в куче хлама, чтоб помочь Вам. Избавляйте форумчан от ненужной работы и будет Вам счастье:-) Не в правила же Вас, можно сказать старожила, отсылать.
Я сам - дурнее всякого примера! ...
 
Обрый день!  
Ув. професионалы!  
Прошу прощенья за то, что нечеткой постановкой задачи морочил ваши головы!  
Пол ночи и все утро думал и эксперементировал, и пришле к выводу, что и таким способом вопрос не решается.  
Поскольку макрос «ПереносКилометраж()», прит вводе нового авто (см.Вольво), все равно копирует значение #Н/Д в ячейке D7 и переносит его в ячейку D9. В post, что прилагается, это видно (см. лист «Занести дані).  
Поэтому, как мне кажется, единственный выход, написать простенький (для вас) макрос, который бы копировал входящий километраж в диапазоне ячеек  Q3:Q20 на листе "СписокП" и вставлял бы его в ячейку D9 на листе «ЗанестиДані». При нажатии на новую кнопку «Входной километраж».    
И попутно переделать формулу =ИНДЕКС(КарткаОбліку!$K10:$K24;ПОИСКПОЗ(D2&F7;КарткаОбліку!$B10:$B24&КарткаОбліку!$G10:$G24;0)) в ячейке D7 на листе «ЗанестиДані», таким образом, чтобы она вместо значения #Н/Д, ставила в этой же ячейке , нолик. Так как, при нулевом входящем километраже, задачка решается сама собой.  
Попытался написать макрос макрорекодером, не получается. Поэтому, без вас, как без головы, никак не справиться с этой проблемой!
 
Попытка номер 3.
 
Передалана формула и макрос ПереносКилометраж.
 
По-моему, Вы все сильно усложнили. Наверно мне так кажется на первый взгляд, но непонятно, зачем всё так сделано. Я бы постарался обойтись 2-мя листами (СпискиП и КарткаОбліку) и без макросов (если исходить из того, что я смог понять из того, что увидел).  
Насколько я понял, Вы на листе "ЗанестиДані" делаете расчет, потом всё это попадает в лист "ПереносДаних" откуда переносится в лист "КарткаОбліку".  
А почему нельзя сразу рассчитывать данные в таблице на листах "КарткаОбліку" и "СпискиП"?  
Просто доработав эти листы формулами и дополнив лист "СпискиП" столбцами с накопительными данными?  
Заранее соглашусь, что я не все мог понять. Но я пытаюсь.
 
{quote}{login=sva}{date=07.09.2011 01:02}{thema=}{post}Передалана формула и макрос ПереносКилометраж.{/post}{/quote}  
Ув. sva!  
Теперь все работает как надо. Только у формулах =ЗанестиДані!D9+ВПР($B7;СпискиП!$J$3:$Q$20;8;ЛОЖЬ) плюс ВПР пришлось убрать. Так как она всегда добавляла к текущим показаниям спидометра, входящий километраж.И еще одна просьба. Нельзя ли заменить вот єту формулу масива =ЕСЛИ(ЕНД(ИНДЕКС(КарткаОбліку!$K10:$K24;ПОИСКПОЗ(D2&F7;КарткаОбліку!$B10:$B24&КарткаОбліку!$G10:$G24;0)));0;ИНДЕКС(КарткаОбліку!$K10:$K24;ПОИСКПОЗ(D2&F7;КарткаОбліку!$B10:$B24&КарткаОбліку!$G10:$G24;0)))на обічнуюю Посколько масив информации намечается большим, а как мне известно, формулі масива медленне работают.  
Огромнейшее вам СПАСИБО!  
І нехай Бог допомогає вам переборювати всі трудощі!
 
А почему нельзя сразу рассчитывать данные в таблице на листах "КарткаОбліку" и "СпискиП"?  
Просто доработав эти листы формулами и дополнив лист "СпискиП" столбцами с накопительными данными?  
 
Ув. гость!  
Все очень просто. Лист "ПереносДаних", нужен мне для визуального контроля за вводимыми даными. Поскольку, иногда так бывает, что глаза привыкают к однообразным таблицам, и не всегда можно заметить допущеную ошибку.  
А вот что касается : "Просто доработав эти листы формулами и дополнив лист "СпискиП" столбцами с накопительными данными?", то мне это заинтересовало как вы себе это представляете. Поделитесь пожалуйста мыслю.  
Потому как мне нужно еще, где то и как то, расчитывать срок службы каждого авто.Путем ежемесячного прибавления к первоначальному сроку службы (приобретенное авто может быть и беушным)по единичке.  
С ув. Муля!
 
Как вариант без формулы.  
См. макросы ПереносКилометраж() и в листе ЗанестиДані на событие изменения ячейки D2 (изменение номера)
 
{quote}{login=Муля}{date=07.09.2011 03:39}{thema=}{post}А почему нельзя сразу рассчитывать данные в таблице на листах "КарткаОбліку" и "СпискиП"?  
Просто доработав эти листы формулами и дополнив лист "СпискиП" столбцами с накопительными данными?  
 
Ув. гость!  
Все очень просто. Лист "ПереносДаних", нужен мне для визуального контроля за вводимыми даными. Поскольку, иногда так бывает, что глаза привыкают к однообразным таблицам, и не всегда можно заметить допущеную ошибку.  
А вот что касается : "Просто доработав эти листы формулами и дополнив лист "СпискиП" столбцами с накопительными данными?", то мне это заинтересовало как вы себе это представляете. Поделитесь пожалуйста мыслю.  
Потому как мне нужно еще, где то и как то, расчитывать срок службы каждого авто.Путем ежемесячного прибавления к первоначальному сроку службы (приобретенное авто может быть и беушным)по единичке.  
С ув. Муля!{/post}{/quote}  
Например - так  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
{quote}{login=sva}{date=07.09.2011 04:24}{thema=}{post}Как вариант без формулы.  
См. макросы ПереносКилометраж() и в листе ЗанестиДані на событие изменения ячейки D2 (изменение номера){/post}{/quote}  
Вариант, ну очень, забавный!  
А нельзя сделать, чтобы ячейка D7 заполнялась еще и по собвтию активизации листа "ЗанестиДані" . А если по 2-ум собітиям сразу нельзя, то только вот по вновь названому событию.  
Обясняю почему так.  
Например, при вводе даных по одному и тому же авто, каждый раз придется перезагружать ячейку D2.  
А по второму варианту, ячейка D7, будет заполняться при возвращении на лист.  
Впрочем, тогда эта же проблема, возникает в случае перехода на другое авто?  
Вот и выходит, что нужноа сработка по 2-ум событиям сразу!!!  
С ув. Мулдя!
 
Пардон!  
"Сразу" надо понимать не одновременно. А по первому и по второму. В зависимости от ситуации.
 
Что-то другой день с цитированием, но было  
Цитата  
"С ув. Мулдя!"  
 
Давно-бы так!-:)))
 
Oooops
 
Для обновления при активации листа, добавьте:  
 
Private Sub Worksheet_Activate()  
Dim i As Long, bFlag As Boolean  
With Sheets("КарткаОбліку")  
For i = .Cells(Rows.Count, 11).End(xlUp).Row To 9 Step -1  
   If .Cells(i, 2) = [D2] Then
   [D7] = .Cells(i, 11)
   bFlag = True  
   Exit For  
   End If  
Next  
End With  
If bFlag = False Then [D7] = 0
End Sub
Страницы: 1 2 След.
Читают тему
Наверх