Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 5

Определить число дней с опозданиями и общее время опозданий

24.06.2012, 19:12. Показов 3823. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте ! Очень прошу помогите решить задачу по vba просто горю !за ранее благодарен всем кто мне поможет !

9. Для указанной фамилии в месячной распечатке (по дням) сотрудников, опоздав-ших на работу, определить число дней с опозданиями и общее время опозданий.


Добавлено через 24 минуты
Ф.И.ОПнВтСрЧтПт   
Иванов В.С.10031 Количество опозданий 
Петров П.Р.02111,5 Общее время  
Краев Д.К.0,53500   
Федяев П.П.0,300,501   
Ломакин Ф.С.10110   
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.06.2012, 19:12
Ответы с готовыми решениями:

Определить опоздавших, количество опозданий и общее время
дан список, в котором указано кто во сколько выходил/заходил через кпп. надо определить опоздавших, количество опозданий и общее время, а...

Определить общее число и общее время удалений за время матча
В ходе хоккейного матча игроки обеих команд удалялись в общей сложности 24 раза. По каждому удалению известен номер команды удаленного...

В списке хоккеистов, для выбранного хоккеиста определить: общее время удалений и общее число матчей с удалениями
Дана такая задача: В списке (по матчам сезона) хоккеистов, иеющих удаления в матчах, для выбранного хоккеиста определить: общее время...

12
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
24.06.2012, 19:43
dima1, запрещено размещать одну и ту же задачу в различных разделах форума, причем, в чужих темах. Теперь Ваше обсуждение будет идти в этом топике.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
24.06.2012, 21:00
Цитата Сообщение от dima1 Посмотреть сообщение
число дней с опозданиями
Наверное не число дней, а их количество.

А в табличке я так понимаю - на сколько минут опоздали.

Если бы набрали все тоже самое в книге Эксель и приаттачили - Расширенный режим, Скрепка,
то Вам уже ответили бы.

P.S. Такие задачи решаются формулами на раз.
0
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 5
24.06.2012, 21:18  [ТС]
в табличку я сам создал ! других вариантов нет ( я так думаю )!
в табличке количество часов опоздания ну и само сабой есть время значит и есть прогул !
помоги если сможешь !
только на этом застрял !
письменное условие верно ( скопировал )
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
24.06.2012, 21:26
Если бы сделали, то что я написал, то помог бы.
Откуда я знаю точное расположение на листе этих данных.
Сделаю - оно Вам не подойдет (на глаз верить не буду).
Извращаться с авто-определением позиции не хочу.
Самому набить данные мне лень.

У Вас, что Эксель украли?
0
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 5
24.06.2012, 21:27  [ТС]
Лист Microsoft Excel.xls
0
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 5
24.06.2012, 21:43  [ТС]
просто частенько то что тот что открываешь не всегда безопасно !
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
24.06.2012, 21:44
Смотрите.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Option Explicit
 
Sub Late()
Dim Y%, N%, oRng As Range, V As Range
For Y = 2 To [A2].End(xlDown).Row
    Set oRng = Range(Range("B" & Y), Range("F" & Y))
    Range("H" & Y) = Application.Sum(oRng)
    N = 0
    For Each V In oRng
       If V.Value <> 0 And V.Value <> vbNullString Then N = N + 1
    Next
    Range("G" & Y) = N
Next
Range("G" & Y) = Application.Sum([G2], [G2].End(xlDown))
Range("H" & Y) = Application.Sum([H2], [G2].End(xlDown))
End Sub

Не по теме:

Я всегда открываю с отключенными макросами.

Вложения
Тип файла: xls Late.xls (27.0 Кб, 37 просмотров)
1
0 / 0 / 0
Регистрация: 24.06.2012
Сообщений: 5
24.06.2012, 22:09  [ТС]
огромное спасибо ! а то я уже отчаялся !
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
25.06.2012, 01:15
Хм, криворукий код. Преобразования в массив не произошло. Можете выбросить.
Вот:
Добавил некоторую проверку.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub Late()
Dim Y%, N%, oRng As Range, V As Range, MASS
If Len([A2]) = 0 Then Exit Sub
For Y = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Set oRng = Range(Range("B" & Y), Range("F" & Y))
    Range("H" & Y) = Application.Sum(oRng)
    N = 0
    For Each V In oRng
       If V.Value <> 0 And V.Value <> vbNullString Then N = N + 1
    Next
    Range("G" & Y) = N
Next
With Application
    MASS = .Transpose(Range([G2], Cells(Rows.Count, [G2].Column).End(xlUp)))
    Range("G" & Y) = Application.Sum(MASS)
    MASS = .Transpose(Range([H2], Cells(Rows.Count, [H2].Column).End(xlUp)))
    Range("H" & Y) = Application.Sum(MASS)
End With
End Sub
Не люблю я писать формулами, хоть убей.
Сейчас попробую - получится в трижды короче.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
25.06.2012, 02:03
Вот попытка сделать через формулу. Что-то у меня не получается с COUNTIF. Пишет "#ИМЯ?"
СЧЁТЕСЛИ работает, но его ж в VBA не вставишь.
Вложения
Тип файла: xls Late2.xls (30.0 Кб, 18 просмотров)
0
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
25.06.2012, 02:20

Не по теме:

Цитата Сообщение от Diskretor Посмотреть сообщение
Я всегда открываю с отключенными макросами.
обжигался?



Добавлено через 5 минут
Цитата Сообщение от Diskretor Посмотреть сообщение
СЧЁТЕСЛИ работает, но его ж в VBA не вставишь.
не совсем так
Visual Basic
1
.Offset(0, -1).FormulaR1C1Local = "=СЧЁТЕСЛИ(RC[-5]:RC[-1];""<>0"")"
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
25.06.2012, 02:36
Ах вот зачем этот Локэл.

Не по теме:

ikki, Нет, на самом деле всегда включенные. Просто стремный ТС с такими вопросами вдруг еще что подарит )). Я вообще против этих дел хочу для форума VBA антивирус написать. Пока застрял немного на последней созданной мною теме.



Так вроде сделал:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Late()
Dim Y%, N%, oRng As Range, V As Range, MASS
If Len([A2]) = 0 Then Exit Sub
With Range([H2], Range("H" & Cells(Rows.Count, 1).End(xlUp).Row))
    .FormulaR1C1 = "=SUM(RC[-6]:RC[-2])"
    .Value = .Value
    '.Offset(0, -1).FormulaR1C1Local = "=СЧЁТЕСЛИ(RC[-5]:RC[-1];""<>0"")"
    .Offset(, -1).FormulaR1C1 = "=SUMPRODUCT(ISNUMBER(RC[-5]:RC[-1])*(RC[-5]:RC[-1]<>0))"
    .Offset(, -1).Value = .Offset(0, -1).Value
End With
With Cells(Rows.Count, [G1].Column).End(xlUp)
    .Offset(1).Formula = "=SUM(" & .Address(0, 0) & ":G2)"
    .Offset(1, 1).Formula = "=SUM(" & .Offset(, 1).Address(0, 0) & ":H2)"
End With
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.06.2012, 02:36
Помогаю со студенческими работами здесь

определить общее число удалений и общее время всех удалений.
В ходе хоккейного матча игроки обеих команд удалялись в общей сложности 24 раза. По каждому удалению известен номер команды удалённого...

Зная квалификацию игроков определить общее число подтягиваний, которое совершат оба игрока за время игры
Пусть квалификация первого игрока равна A, а квалификация второго равна B. Обозначим количество подтягиваний в подходе для первого игрока...

Сколько дней потребуется предприятию, чтобы общее количество выпущенной продукции за все время работы впервые превысило
Малое предприятие в первый день работы выпустило P единиц товарной продукции. Каждый последующий день оно выпускало продукции на Q единиц...

Определить какое общее расстояние проползет улитка через N дней
В первый день улитка проползла 15 см. Каждый следующий день она проползала на 2 см дальше. Определить какое общее расстояние проползет...

Дан номер года (положительное целое число). Определить количество дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный
Дан номер года (положительное целое число). Определить количество дней в этом году, учитывая, что обычный год насчитывает 365 дней, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru