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

Вход

Регистрация

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

 

= Мир MS Excel/Выборка данных из базы данных по критериям - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Выборка данных из базы данных по критериям
agroster Дата: Пятница, 07.04.2017, 22:04 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Всю голову сломал. Помогите кто сможет. Задача в файле.
К сообщению приложен файл: 6049255.xlsx (25.8 Kb)
 
Ответить
СообщениеДобрый день!
Всю голову сломал. Помогите кто сможет. Задача в файле.

Автор - agroster
Дата добавления - 07.04.2017 в 22:04
gling Дата: Пятница, 07.04.2017, 23:02 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2640
Репутация: 737 ±
Замечаний: 0% ±

2010
Здравствуйте. Посмотрите формулой массива, может подойдет. Но могут быть ошибки, если будет несколько одинаковых сумм.
Код
=СУММ(НАИБОЛЬШИЙ(ЕСЛИ(($A$1:$A$110=$M$2);$E$1:$E$110);СТРОКА(1:1)))
и не массивная в другой столбец
Код
=ИНДЕКС($C$1:$C$110;СУММПРОИЗВ(($A$1:$A$110=$M$2)*($E$1:$E$110=L19)*СТРОКА($A$1:$A$110)))
Проверяйте правильно ли всё выбрало.
К сообщению приложен файл: 0127612.xlsx (31.7 Kb)


ЯД-41001506838083
 
Ответить
СообщениеЗдравствуйте. Посмотрите формулой массива, может подойдет. Но могут быть ошибки, если будет несколько одинаковых сумм.
Код
=СУММ(НАИБОЛЬШИЙ(ЕСЛИ(($A$1:$A$110=$M$2);$E$1:$E$110);СТРОКА(1:1)))
и не массивная в другой столбец
Код
=ИНДЕКС($C$1:$C$110;СУММПРОИЗВ(($A$1:$A$110=$M$2)*($E$1:$E$110=L19)*СТРОКА($A$1:$A$110)))
Проверяйте правильно ли всё выбрало.

Автор - gling
Дата добавления - 07.04.2017 в 23:02
ZORRO2005 Дата: Пятница, 07.04.2017, 23:43 | Сообщение № 3
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Формулы массива (CTRL+SHIFT+ENTER)
O6:
Код
=НАИБОЛЬШИЙ(ЕСЛИ(($A$2:$A$110=$M$2)*($B$2:$B$110<>"Результат");$E$2:$E$110);СТРОКА(A1))

N6:
Код
=ИНДЕКС($B$2:$B$110;ПОИСКПОЗ(O6;$E$2:$E$110*(СЧЁТЕСЛИ($N$5:N5;$B$2:$B$110)=0);))

проверяет на дубликаты в столбце E
К сообщению приложен файл: 2017_04_07.xlsx (27.8 Kb)


Сообщение отредактировал ZORRO2005 - Пятница, 07.04.2017, 23:43
 
Ответить
СообщениеФормулы массива (CTRL+SHIFT+ENTER)
O6:
Код
=НАИБОЛЬШИЙ(ЕСЛИ(($A$2:$A$110=$M$2)*($B$2:$B$110<>"Результат");$E$2:$E$110);СТРОКА(A1))

N6:
Код
=ИНДЕКС($B$2:$B$110;ПОИСКПОЗ(O6;$E$2:$E$110*(СЧЁТЕСЛИ($N$5:N5;$B$2:$B$110)=0);))

проверяет на дубликаты в столбце E

Автор - ZORRO2005
Дата добавления - 07.04.2017 в 23:43
dixus Дата: Суббота, 08.04.2017, 01:08 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010
agroster, Попробуй еще это. Если нужно первые 10 значений выбрать. Желтая заливка - формулы. В ячейке М2 можешь сделать выпадающий список. Вспомогательная таблица с желтой заливкой может быть на крайних ячейках , которые можно скрыть, чтобы не загромождать поле. В итоговую табличку с десятью значениями добавь поиск на дубликаты в ячейки О6 - О15 и условие, если дубликат, то следующее. А вообще, я заметил, дубликат еще по наименованию, т.к. результат стоит в общих колонках. Лучше сделать его отдельно. В ячейке М2 можно менять категорию, соответственно, меняется список. Кроме автозапчасти, там дубликат. Ложусь спать, поэтому дубликаты не поправил, но тебе подсказку уже дали. Надеюсь, помогли сообща
К сообщению приложен файл: 1123169.xlsx (30.0 Kb)
 
Ответить
Сообщениеagroster, Попробуй еще это. Если нужно первые 10 значений выбрать. Желтая заливка - формулы. В ячейке М2 можешь сделать выпадающий список. Вспомогательная таблица с желтой заливкой может быть на крайних ячейках , которые можно скрыть, чтобы не загромождать поле. В итоговую табличку с десятью значениями добавь поиск на дубликаты в ячейки О6 - О15 и условие, если дубликат, то следующее. А вообще, я заметил, дубликат еще по наименованию, т.к. результат стоит в общих колонках. Лучше сделать его отдельно. В ячейке М2 можно менять категорию, соответственно, меняется список. Кроме автозапчасти, там дубликат. Ложусь спать, поэтому дубликаты не поправил, но тебе подсказку уже дали. Надеюсь, помогли сообща

Автор - dixus
Дата добавления - 08.04.2017 в 01:08
dixus Дата: Суббота, 08.04.2017, 01:12 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010
agroster, Попробуй еще это. Если нужно первые 10 значений выбрать. Желтая заливка - формулы. В ячейке М2 можешь сделать выпадающий список. Вспомогательная таблица с желтой заливкой может быть на крайних ячейках , которые можно скрыть, чтобы не загромождать поле. В итоговую табличку с десятью значениями добавь поиск на дубликаты в ячейки О6 - О15 и условие, если дубликат, то следующее. А вообще, я заметил, дубликат еще по наименованию, т.к. результат стоит в общих колонках. Лучше сделать его отдельно. В ячейке М2 можно менять категорию, соответственно, меняется список. Кроме автозапчасти, там дубликат. Ложусь спать, поэтому дубликаты не поправил, но тебе подсказку уже дали. Надеюсь, помогли сообща
К сообщению приложен файл: 6283628.xlsx (30.0 Kb)
 
Ответить
Сообщениеagroster, Попробуй еще это. Если нужно первые 10 значений выбрать. Желтая заливка - формулы. В ячейке М2 можешь сделать выпадающий список. Вспомогательная таблица с желтой заливкой может быть на крайних ячейках , которые можно скрыть, чтобы не загромождать поле. В итоговую табличку с десятью значениями добавь поиск на дубликаты в ячейки О6 - О15 и условие, если дубликат, то следующее. А вообще, я заметил, дубликат еще по наименованию, т.к. результат стоит в общих колонках. Лучше сделать его отдельно. В ячейке М2 можно менять категорию, соответственно, меняется список. Кроме автозапчасти, там дубликат. Ложусь спать, поэтому дубликаты не поправил, но тебе подсказку уже дали. Надеюсь, помогли сообща

Автор - dixus
Дата добавления - 08.04.2017 в 01:12
krosav4ig Дата: Суббота, 08.04.2017, 04:13 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Вариант с ODBC подключением
таблица автоматически обновляется при изменении ячейки М2, или ПКМ по таблице>Обновить
текст запроса[vba]
Код
SELECT top 10 Материал1 AS Наименование, Материал AS PLU, `Списание без НДС (Итог) (руб)` AS [Потери, руб],  cdbl(replace(0&`Списание  без НДС  (Итог) (%)`,' %',''))/100 AS [Потери от реализации, %] FROM `Лист1$` WHERE (Материал1<>'Результат') AND (Товиерур2=?) ORDER BY `Списание без НДС (Итог) (руб)` DESC
[/vba]
плюс макрос для обновления строки подключения
в модуле Лист [vba]
Код
Public WithEvents QT As QueryTable
Private Sub qt_BeforeRefresh(Cancel As Boolean)
    QT.Connection = "ODBC;DSN=Excel Files;DriverId=1046;DBQ=" & ThisWorkbook.FullName
End Sub
[/vba]в ЭтаКнига[vba]
Код
Private Sub Workbook_Open()
    Set Лист1.QT = ThisWorkbook.Connections("запрос").Ranges(1).ListObject.QueryTable
End Sub
[/vba]
К сообщению приложен файл: 6049255.xlsm (36.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеВариант с ODBC подключением
таблица автоматически обновляется при изменении ячейки М2, или ПКМ по таблице>Обновить
текст запроса[vba]
Код
SELECT top 10 Материал1 AS Наименование, Материал AS PLU, `Списание без НДС (Итог) (руб)` AS [Потери, руб],  cdbl(replace(0&`Списание  без НДС  (Итог) (%)`,' %',''))/100 AS [Потери от реализации, %] FROM `Лист1$` WHERE (Материал1<>'Результат') AND (Товиерур2=?) ORDER BY `Списание без НДС (Итог) (руб)` DESC
[/vba]
плюс макрос для обновления строки подключения
в модуле Лист [vba]
Код
Public WithEvents QT As QueryTable
Private Sub qt_BeforeRefresh(Cancel As Boolean)
    QT.Connection = "ODBC;DSN=Excel Files;DriverId=1046;DBQ=" & ThisWorkbook.FullName
End Sub
[/vba]в ЭтаКнига[vba]
Код
Private Sub Workbook_Open()
    Set Лист1.QT = ThisWorkbook.Connections("запрос").Ranges(1).ListObject.QueryTable
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 08.04.2017 в 04:13
  • Страница 1 из 1
  • 1
Поиск:

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