Есть данные сформированные на двух листах Excel.
Нужно написать запрос, который накодит одинаковые поля в столбце одного листа, в другому столбцу берет номер. На втором листе ищет в столбце такие намера, и найдя берет определенные данные по этим намерам и провяди с ними какие-то действия, например находит разницу межну max и min значением и помещает все это в новую книгу.
Таки действия, возможно написать с помощью макросов, и вообще какова технология создания таких запросов?
Excel БД и запросы. Нужна помощь.
Модератор: Naeel Maqsudov
Вы сами разбили задачу на несколько этапов, смотрим на каждый этап.
В каждом этапе есть исходные данные и выходные, а также есть действия.
Очевидно, что
- входными данными являются таблица или диапазон ячеек (в Excel это объект Range) и критерии, по которым выполняются определенные действия;
- выходными данными опять же является таблица (диапазон ячеек)
Действие можно реализовать в виде макроса (кода на VBA), например привязанного к кнопке, который возьмет исходный диапазон ячеек, в соответствии с определенными критериями произведет необходимые действия и сформирует выходной диапазон ячееек Excel как результат.
Например:
Пусть диапазон "mas_A" - исходный список, располагается A1:A10
а диапазон "mas_B" - список без пробелов, располагается B1: B....
Действие также можно реализовать и в виде формул, используя стандартные (или самодельные) функции Excel для работы с БД.
В каждом этапе есть исходные данные и выходные, а также есть действия.
Очевидно, что
- входными данными являются таблица или диапазон ячеек (в Excel это объект Range) и критерии, по которым выполняются определенные действия;
- выходными данными опять же является таблица (диапазон ячеек)
Действие можно реализовать в виде макроса (кода на VBA), например привязанного к кнопке, который возьмет исходный диапазон ячеек, в соответствии с определенными критериями произведет необходимые действия и сформирует выходной диапазон ячееек Excel как результат.
Например:
Пусть диапазон "mas_A" - исходный список, располагается A1:A10
а диапазон "mas_B" - список без пробелов, располагается B1: B....
Код: Выделить всё
Private Sub CommandButton1_Click()
p = 0
Range("B:B").ClearContents
For Each iCell In Application.Range("mas_A")
If iCell.Value <> "" Then
p = p + 1
Cells(p, 2) = iCell.Value
End If
Next
ActiveWorkbook.Names.Add Name:="mas_B", RefersToR1C1:=Range("B1", Cells(p, 2))
End Sub