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

Вход

Регистрация

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

 

= Мир MS Excel/Функция DCount с несколькими условиями - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: _Boroda_, китин  
Функция DCount с несколькими условиями
Андреич Дата: Воскресенье, 16.01.2022, 20:28 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте! Нужно подсчитать количество записей с учетом некоторых условий с помощью функции DCount. При вот таком выражении:
[vba]
Код
DCount("[Дата выезда]";"ТаблицаВЫЕЗД";"MonthName(Month([Дата выезда]))='" & [Месяц] & "' And [Выезд_техники]![Подразделение]='" & [Подразделение])
[/vba]

выдает синтаксическую ошибку. Подскажите, в чем она заключается?


...пожарные выехали в ту же ночь...

Сообщение отредактировал Андреич - Воскресенье, 16.01.2022, 20:30
 
Ответить
СообщениеЗдравствуйте! Нужно подсчитать количество записей с учетом некоторых условий с помощью функции DCount. При вот таком выражении:
[vba]
Код
DCount("[Дата выезда]";"ТаблицаВЫЕЗД";"MonthName(Month([Дата выезда]))='" & [Месяц] & "' And [Выезд_техники]![Подразделение]='" & [Подразделение])
[/vba]

выдает синтаксическую ошибку. Подскажите, в чем она заключается?

Автор - Андреич
Дата добавления - 16.01.2022 в 20:28
Pelena Дата: Воскресенье, 16.01.2022, 21:21 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19408
Репутация: 4557 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Попробуйте после подразделения закрыть апостроф
[vba]
Код
DCount("[Дата выезда]";"ТаблицаВЫЕЗД";"MonthName(Month([Дата выезда]))='" & [Месяц] & "' And [Выезд_техники]![Подразделение]='" & [Подразделение] & "'")
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Попробуйте после подразделения закрыть апостроф
[vba]
Код
DCount("[Дата выезда]";"ТаблицаВЫЕЗД";"MonthName(Month([Дата выезда]))='" & [Месяц] & "' And [Выезд_техники]![Подразделение]='" & [Подразделение] & "'")
[/vba]

Автор - Pelena
Дата добавления - 16.01.2022 в 21:21
Андреич Дата: Воскресенье, 16.01.2022, 21:29 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Чего-то не то) Я часть базы сюда выложу для полноты картины?
К сообщению приложен файл: 0171723.jpg (52.4 Kb)


...пожарные выехали в ту же ночь...

Сообщение отредактировал Андреич - Воскресенье, 16.01.2022, 21:34
 
Ответить
СообщениеЧего-то не то) Я часть базы сюда выложу для полноты картины?

Автор - Андреич
Дата добавления - 16.01.2022 в 21:29
Андреич Дата: Воскресенье, 16.01.2022, 21:49 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Перекрестные запрос "Все подразделения" собирает все выезды подразделений на определенное событие: "Пожар". Но в разрезе каждого дня. Для удобного помесячного просмотра, попробовал второй перекрестный запрос "Все подразделения помесячно" и его аналог "на выборку" с 222 на конце. Функция count дает не верный результат, а с DCount не могу совладать.
К сообщению приложен файл: 4-__.rar (122.8 Kb)


...пожарные выехали в ту же ночь...
 
Ответить
СообщениеПерекрестные запрос "Все подразделения" собирает все выезды подразделений на определенное событие: "Пожар". Но в разрезе каждого дня. Для удобного помесячного просмотра, попробовал второй перекрестный запрос "Все подразделения помесячно" и его аналог "на выборку" с 222 на конце. Функция count дает не верный результат, а с DCount не могу совладать.

Автор - Андреич
Дата добавления - 16.01.2022 в 21:49
Pelena Дата: Понедельник, 17.01.2022, 09:33 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19408
Репутация: 4557 ±
Замечаний: ±

Excel 365 & Mac Excel
Функция DCount в критерии позволяет использовать поля из указанного в ней источника, поэтому я бы сделала промежуточный запрос (в файле "Все подразделения помесячно"), в который собрала все нужные поля из разных таблиц, а потом уже на его основе делала DCount (Ваш запрос "Пожар....22")
К сообщению приложен файл: 4-.rar (132.5 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеФункция DCount в критерии позволяет использовать поля из указанного в ней источника, поэтому я бы сделала промежуточный запрос (в файле "Все подразделения помесячно"), в который собрала все нужные поля из разных таблиц, а потом уже на его основе делала DCount (Ваш запрос "Пожар....22")

Автор - Pelena
Дата добавления - 17.01.2022 в 09:33
Андреич Дата: Понедельник, 17.01.2022, 11:56 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо за отклик, в очередной раз. Ваш вариант, как и мой, не совсем корректно считает. Наверное это из за того, что в базе коряво реализован ввод и хранение информации.
Вот смотрите: запрос "Пожары по дням" выдергивает из главной таблицы все выезды на пожары и показывает какое количество машин какой пожарной части выезжало. Если мы отфильтруем один месяц - январь, то увидим, что в нем было всего 9 пожаров. На все пожары выезжала 15 ПСЧ, каждый раз разным количеством машин (в сумме это количество за месяц = 12).
Если мы посмотрим на помесячный перекрестный запрос (и мой и Ваш), то увидим, что в январе у 15 ПСЧ стоит цифра 12, а не 9. Т.е. мне нужен подсчет количества выездов а не количества техники.

Вот ваша промежуточная таблица "Все подразделения помесячно" также выдергивает все выезды на пожары по дням. Но разбивает запись каждого автомобиля на отдельную строку. Если отфильтровать по месяцу - январь и по подразделению - 15 ПСЧ, мы увидим те же 12 записей. При этом видно, что "КодВыезда" ключевое поле таблицы учитывающей именно выезды, имеет 9 уникальных ключей. Смотрите скрин.
Т.е. при использовании Вашей промежуточной таблицы вижу задачу подсчитывать эти уникальные номера помесячно для каждого подразделения.
Наверное нужно подумать и уйти от такой реализации ввода информации по подразделениям и количеству машин выезжающих на пожар.
К сообщению приложен файл: 5945527.rar (140.1 Kb) · 4707320.png (81.2 Kb)


...пожарные выехали в ту же ночь...

Сообщение отредактировал Андреич - Понедельник, 17.01.2022, 11:57
 
Ответить
СообщениеСпасибо за отклик, в очередной раз. Ваш вариант, как и мой, не совсем корректно считает. Наверное это из за того, что в базе коряво реализован ввод и хранение информации.
Вот смотрите: запрос "Пожары по дням" выдергивает из главной таблицы все выезды на пожары и показывает какое количество машин какой пожарной части выезжало. Если мы отфильтруем один месяц - январь, то увидим, что в нем было всего 9 пожаров. На все пожары выезжала 15 ПСЧ, каждый раз разным количеством машин (в сумме это количество за месяц = 12).
Если мы посмотрим на помесячный перекрестный запрос (и мой и Ваш), то увидим, что в январе у 15 ПСЧ стоит цифра 12, а не 9. Т.е. мне нужен подсчет количества выездов а не количества техники.

Вот ваша промежуточная таблица "Все подразделения помесячно" также выдергивает все выезды на пожары по дням. Но разбивает запись каждого автомобиля на отдельную строку. Если отфильтровать по месяцу - январь и по подразделению - 15 ПСЧ, мы увидим те же 12 записей. При этом видно, что "КодВыезда" ключевое поле таблицы учитывающей именно выезды, имеет 9 уникальных ключей. Смотрите скрин.
Т.е. при использовании Вашей промежуточной таблицы вижу задачу подсчитывать эти уникальные номера помесячно для каждого подразделения.
Наверное нужно подумать и уйти от такой реализации ввода информации по подразделениям и количеству машин выезжающих на пожар.

Автор - Андреич
Дата добавления - 17.01.2022 в 11:56
Pelena Дата: Понедельник, 17.01.2022, 14:07 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19408
Репутация: 4557 ±
Замечаний: ±

Excel 365 & Mac Excel
Чтобы убрать повторы, надо в промежуточном запросе "Все подразделения помесячно" включить группировку.

Я даже думаю, что в этом случае сработает обычная Count в группировке конечного файла
К сообщению приложен файл: 4836579.rar (137.8 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЧтобы убрать повторы, надо в промежуточном запросе "Все подразделения помесячно" включить группировку.

Я даже думаю, что в этом случае сработает обычная Count в группировке конечного файла

Автор - Pelena
Дата добавления - 17.01.2022 в 14:07
Андреич Дата: Понедельник, 17.01.2022, 20:38 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо, сейчас буду смотреть. Вроде все норм, но в месячном файле есть различия по количеству выездов с промежуточным запросом. А для чего в промежуточном запросе есть повторяющиеся столбцы с показателем "групповая операция" - "выражение"?

[p.s.] Кстати применение Count дает точный результат. С DCount у некоторых подразделений стояло не верное количество выездов, отличное от запроса-донора. Спасибо большое!!!


...пожарные выехали в ту же ночь...

Сообщение отредактировал Андреич - Понедельник, 17.01.2022, 21:14
 
Ответить
СообщениеСпасибо, сейчас буду смотреть. Вроде все норм, но в месячном файле есть различия по количеству выездов с промежуточным запросом. А для чего в промежуточном запросе есть повторяющиеся столбцы с показателем "групповая операция" - "выражение"?

[p.s.] Кстати применение Count дает точный результат. С DCount у некоторых подразделений стояло не верное количество выездов, отличное от запроса-донора. Спасибо большое!!!

Автор - Андреич
Дата добавления - 17.01.2022 в 20:38
Pelena Дата: Понедельник, 17.01.2022, 21:13 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 19408
Репутация: 4557 ±
Замечаний: ±

Excel 365 & Mac Excel
Цитата Андреич, 17.01.2022 в 20:38, в сообщении № 8 ()
есть повторяющиеся столбцы

не обратила внимания, попробуйте убрать


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Цитата Андреич, 17.01.2022 в 20:38, в сообщении № 8 ()
есть повторяющиеся столбцы

не обратила внимания, попробуйте убрать

Автор - Pelena
Дата добавления - 17.01.2022 в 21:13
Андреич Дата: Понедельник, 17.01.2022, 21:19 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Они ни на что не влияют! Все норм. Низкий поклон.


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

Автор - Андреич
Дата добавления - 17.01.2022 в 21:19
Андреич Дата: Вторник, 25.01.2022, 14:45 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Итак, двигаемся дальше. Конечное выражение, которое решило первоначальную задачу:

[vba]
Код
Count(DCount("[Дата выезда]";"Донор11_пожары_ежедневно";"MonthName(Month([Дата выезда]))='" & [Месяц] & "' And [Подразделение]='" & [Подразделение] & "'"))
[/vba]

А как теперь вместо условия [vba]
Код
"And [Подразделение]='" & [Подразделение] & "'"
[/vba]

задать условие подсчета записей у которых в определенном столбце стоит галочка в чекбоксе:

[vba]
Код
"And [Столбец_с_чекбоксами]='" & [Учитывать только выделенный чекбокс] & "'"
[/vba]???

Интуитивно понимаю, что типа Столбец_с_чекбоксами = true, но что-то с синтаксисом не порядок)))


...пожарные выехали в ту же ночь...

Сообщение отредактировал Андреич - Вторник, 25.01.2022, 14:47
 
Ответить
СообщениеИтак, двигаемся дальше. Конечное выражение, которое решило первоначальную задачу:

[vba]
Код
Count(DCount("[Дата выезда]";"Донор11_пожары_ежедневно";"MonthName(Month([Дата выезда]))='" & [Месяц] & "' And [Подразделение]='" & [Подразделение] & "'"))
[/vba]

А как теперь вместо условия [vba]
Код
"And [Подразделение]='" & [Подразделение] & "'"
[/vba]

задать условие подсчета записей у которых в определенном столбце стоит галочка в чекбоксе:

[vba]
Код
"And [Столбец_с_чекбоксами]='" & [Учитывать только выделенный чекбокс] & "'"
[/vba]???

Интуитивно понимаю, что типа Столбец_с_чекбоксами = true, но что-то с синтаксисом не порядок)))

Автор - Андреич
Дата добавления - 25.01.2022 в 14:45
Pelena Дата: Вторник, 25.01.2022, 17:05 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 19408
Репутация: 4557 ±
Замечаний: ±

Excel 365 & Mac Excel
Апострофы для true не нужны. И в русскоязычной версии скорей всего не true, а ИСТИНА
[vba]
Код
" And [Столбец_с_чекбоксами]=ИСТИНА"
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеАпострофы для true не нужны. И в русскоязычной версии скорей всего не true, а ИСТИНА
[vba]
Код
" And [Столбец_с_чекбоксами]=ИСТИНА"
[/vba]

Автор - Pelena
Дата добавления - 25.01.2022 в 17:05
Андреич Дата: Вторник, 25.01.2022, 23:48 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Вот при таком написании выводит количество всех записей в запросе, без подсчета именно нажатых чекбоксов:
[vba]
Код
Count(DCount("[Дата выезда]";"Донор12_пожары_с_временами";"MonthName(Month([Дата выезда]))='" & [Месяц] & "'" And [Потушено до прибытия ПО]=Истина))
[/vba]


...пожарные выехали в ту же ночь...

Сообщение отредактировал Андреич - Вторник, 25.01.2022, 23:49
 
Ответить
СообщениеВот при таком написании выводит количество всех записей в запросе, без подсчета именно нажатых чекбоксов:
[vba]
Код
Count(DCount("[Дата выезда]";"Донор12_пожары_с_временами";"MonthName(Month([Дата выезда]))='" & [Месяц] & "'" And [Потушено до прибытия ПО]=Истина))
[/vba]

Автор - Андреич
Дата добавления - 25.01.2022 в 23:48
Pelena Дата: Среда, 26.01.2022, 00:06 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 19408
Репутация: 4557 ±
Замечаний: ±

Excel 365 & Mac Excel
Можно [vba]
Код
[Потушено до прибытия ПО]=Истина
[/vba] заменить на [vba]
Код
[Потушено до прибытия ПО]
[/vba] а то масло масляное получается


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеМожно [vba]
Код
[Потушено до прибытия ПО]=Истина
[/vba] заменить на [vba]
Код
[Потушено до прибытия ПО]
[/vba] а то масло масляное получается

Автор - Pelena
Дата добавления - 26.01.2022 в 00:06
Андреич Дата: Среда, 26.01.2022, 00:11 | Сообщение № 15
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Уважаемая, Pelena, да, все так, но не работает, такое выражение выводит количество всех записей в запросе, а не тех, чекбоксы которых отмечены галочками.


...пожарные выехали в ту же ночь...

Сообщение отредактировал Андреич - Среда, 26.01.2022, 00:11
 
Ответить
СообщениеУважаемая, Pelena, да, все так, но не работает, такое выражение выводит количество всех записей в запросе, а не тех, чекбоксы которых отмечены галочками.

Автор - Андреич
Дата добавления - 26.01.2022 в 00:11
Pelena Дата: Среда, 26.01.2022, 00:17 | Сообщение № 16
Группа: Админы
Ранг: Местный житель
Сообщений: 19408
Репутация: 4557 ±
Замечаний: ±

Excel 365 & Mac Excel
Проверила, работает


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПроверила, работает

Автор - Pelena
Дата добавления - 26.01.2022 в 00:17
Андреич Дата: Среда, 26.01.2022, 00:40 | Сообщение № 17
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Если вас не затруднит, посмотрите пожалуйста. Нужный запрос называется Запрос1.
Наверное, я опять не сказал всех вводных поэтому в моей базе не хочет подсчитывать нужные записи.

И еще вопрос. Есть форма Количество выездов она очень удобно отображала данные из одноименного запроса, с фильтром по гарнизону.
Я сделал копию прошлогодней базы, удалил все выезды и мы начали вести ее заново и вот в данной форме поломался подсчет в строке "Итого с начала года", хотя все формулы вроде корректно прописаны.
К сообщению приложен файл: 4-__2022__.rar (89.1 Kb)


...пожарные выехали в ту же ночь...
 
Ответить
СообщениеЕсли вас не затруднит, посмотрите пожалуйста. Нужный запрос называется Запрос1.
Наверное, я опять не сказал всех вводных поэтому в моей базе не хочет подсчитывать нужные записи.

И еще вопрос. Есть форма Количество выездов она очень удобно отображала данные из одноименного запроса, с фильтром по гарнизону.
Я сделал копию прошлогодней базы, удалил все выезды и мы начали вести ее заново и вот в данной форме поломался подсчет в строке "Итого с начала года", хотя все формулы вроде корректно прописаны.

Автор - Андреич
Дата добавления - 26.01.2022 в 00:40
Pelena Дата: Среда, 26.01.2022, 09:51 | Сообщение № 18
Группа: Админы
Ранг: Местный житель
Сообщений: 19408
Репутация: 4557 ±
Замечаний: ±

Excel 365 & Mac Excel
Про Запрос1:
1) функция Count лишняя. Рабочая формула
[vba]
Код
DCount("[КодВыезда]";"Донор12_пожары_с_временами";"MonthName(Month([Дата выезда]))='" & [Месяц] & "' And [Потушено до прибытия ПО]")
[/vba]
2) то, что Вы в запросе поставили фильтр "Муромский ПСГ", никак не отражается на формуле, она всё равно считает все гарнизоны.
Поэтому либо в формулу добавляете критерий по гарнизону, либо не мучаетесь с формулой и используете обычную группировку с условиями и операцией Count для КодВыезда (в файле оставила и то и другое)

По форме позже посмотрю
К сообщению приложен файл: 4-2022_.rar (94.1 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПро Запрос1:
1) функция Count лишняя. Рабочая формула
[vba]
Код
DCount("[КодВыезда]";"Донор12_пожары_с_временами";"MonthName(Month([Дата выезда]))='" & [Месяц] & "' And [Потушено до прибытия ПО]")
[/vba]
2) то, что Вы в запросе поставили фильтр "Муромский ПСГ", никак не отражается на формуле, она всё равно считает все гарнизоны.
Поэтому либо в формулу добавляете критерий по гарнизону, либо не мучаетесь с формулой и используете обычную группировку с условиями и операцией Count для КодВыезда (в файле оставила и то и другое)

По форме позже посмотрю

Автор - Pelena
Дата добавления - 26.01.2022 в 09:51
Андреич Дата: Среда, 26.01.2022, 21:12 | Сообщение № 19
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, спасибочки. Оба варианта работают. В формулу добавил критерий - получилось. Но синтаксис там, я вам скажу, ужас.
Форма не срочно, как будет время...


...пожарные выехали в ту же ночь...
 
Ответить
СообщениеPelena, спасибочки. Оба варианта работают. В формулу добавил критерий - получилось. Но синтаксис там, я вам скажу, ужас.
Форма не срочно, как будет время...

Автор - Андреич
Дата добавления - 26.01.2022 в 21:12
Андреич Дата: Среда, 26.01.2022, 23:21 | Сообщение № 20
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Сколько много вопросов по синтаксису функции DCount.
Вот еще один.
Каким образом прописать в формулу выражение 1-БИС как значение одного из условий?

Пример. Вот такое значение корректно обрабатывается:
[vba]
Код
DCount(... And [Ранг пожара]=1")
[/vba]

А вот такое выдает ошибку в результатах:
[vba]
Код
DCount(... And [Ранг пожара]=1-БИС")
[/vba]

Оборачивание в двойные кавычки приводит к синтаксической ошибке. В общем, как?


...пожарные выехали в ту же ночь...
 
Ответить
СообщениеСколько много вопросов по синтаксису функции DCount.
Вот еще один.
Каким образом прописать в формулу выражение 1-БИС как значение одного из условий?

Пример. Вот такое значение корректно обрабатывается:
[vba]
Код
DCount(... And [Ранг пожара]=1")
[/vba]

А вот такое выдает ошибку в результатах:
[vba]
Код
DCount(... And [Ранг пожара]=1-БИС")
[/vba]

Оборачивание в двойные кавычки приводит к синтаксической ошибке. В общем, как?

Автор - Андреич
Дата добавления - 26.01.2022 в 23:21
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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