Взять первое/последнее значение в БД Excel

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Brat2005
Сообщения: 61
Зарегистрирован: 26 сен 2005, 14:33

Есть такая, типа база данных в Excel
Изображение

Можно ли используя формулы работы с базами данных (возможно, не только их) выбрать первое/последнее значение?
То есть, например, необходимо в пределах любой недели взять первое значение из столбца "значение" (первое, то есть с наименьшей датой) при условии, что столбец "сумма" заполнен? То же самое для последнего значения (с наибольшей) датой?..
Задается только номер недели (указывается в какой-л ячейке - в диапазоне критериев БД).
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Можно, но при использовании функций баз данных, в качестве критерия, необходимо указывать не только Номер недели, но Сумму <>
Brat2005
Сообщения: 61
Зарегистрирован: 26 сен 2005, 14:33

При чем тут сумма не равна чему-либо? Речь идет о том, как взять из диапазона определенной недели первое и последнее значение определенного столбца при условии, что есть ненулевые значения в другом столбце?
То есть, например, для недели 24 это будет соответственно 1,5 и 1,6.
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Да всё притом, вот цитата из Вашего предыдущего поста
"... при условии, что столбец "сумма" заполнен" © Brat2005
Brat2005
Сообщения: 61
Зарегистрирован: 26 сен 2005, 14:33

то, что сумма не равна чему-либо (чему?) ничего не дает, так как нет условия позволяющего хотя бы определить есть ли в строке столбца "сумма" значение больше 0 (по указанной неделе, конечно)
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Уточнение, с Вашей точки зрения, это ничего Вам не даёт, я например, могу определить есть ли в столбце "сумма" числовые значения > 0 0 (по указанной неделе, конечно), например используя функцию баз данных =БСЧЁТ()
Однако, должен Вам напомнить, что первоначально Вы выставили требование, гласящие, что столбец "сумма" должен быть заполнен. А вот чем он должен быть заполнен, не оговаривалось, отсюда и <>
Brat2005
Сообщения: 61
Зарегистрирован: 26 сен 2005, 14:33

все верно, определить есть ли значения в том или ином столбце, не проблема, но что это даст?
Как это можно использовать, для того, чтобы "взять" первое или последнее значение в совершенно ином столбце?
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

=ДМИН(База_Данных;Поле;Критерий)

Поле - заголовок столбца в кавычках или номер столбца.

В Вашем случае, если исходить из представленного скриншота, достаточно указать "Дата" или 4, и Вы сможете получить значение, расположенное в конкретном столбце.
Brat2005
Сообщения: 61
Зарегистрирован: 26 сен 2005, 14:33

Так можно сделать, но я получу минимальное значение этого столбца указанной недели без учета каких-либо условий, а мне необходимо первое (значение из стобца "значение" по критерию номера недели), при условии, что в столбце "сумма" значение больше 0.
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

По моему задача не типовая, потребует создания своих функций и использовния VBA.
Создайте две пользовательские функции (или одну):

First_Value=f1 (Range, НомерНедели, min)
Last_Value=f2 (Range, НомерНедели, max)

Пусть Range содержит и заголовки таблицы,
тогда выбираете сначала записи в столбце "Неделя" по аргументу НомерНедели
затем отбираете значения по столбцу "Дата", минимальное и максимальное,
при этом проверяете есть ли в слолбце "Сумма" какое-нибудь значение.
Ответить