Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: sovere от 14.11.2010, 15:46

Название: Выбор значения из массива данных по нескольким условиям
Отправлено: sovere от 14.11.2010, 15:46
Имеется массив данных, где в первых 2 столбцах указаны номер автомобиля и номер смены,  последующие столбцы (31) содержат Ф.И.О. водителей для каждого дня месяца.
Задача - в реестре, состоящем из 4 столбцов "номер машины", "дата", "смена", "Ф.И.О." заполнить столбец Ф.И.О. на основании данных массива.

Если бы водители имели просто числовой номер вместо фамилии, решение было-бы простым "СУММЕСЛИ" с фигурными скобочками.
Но необходимо оперировать именно фамилиями.

Прикрепил файл с примером.

Буду признателен за подсказку.
Название: Re: Выбор значения из массива данных по нескольким условиям
Отправлено: Hugo121 от 14.11.2010, 17:05
Как вариант макросом, хотя вероятно можно сделать и формулами. Но если данных много, лучше макросом.
Option Explicit

Sub tt()
Dim a(), b(), i As Long, ii As Long, iii As Long

a = Sheets(1).[b2:h8].Value
b = Sheets(2).[b3:e20].Value

For i = 1 To UBound(a)
For ii = 1 To UBound(b)
If a(i, 1) = b(ii, 1) Then
If a(i, 2) = b(ii, 2) Then
    For iii = 3 To 7
    If b(ii, 3) = a(1, iii) Then b(ii, 4) = a(i, iii): Exit For
    Next
    Exit For
End If
End If
Next ii, i

Sheets(2).[b3:e20].Value = b
End Sub

Диапазоны можно сделать динамическими, и можно результат собирать в третий массив, будет быстрее выгрузка, но чуть непонятнее код :)
Название: Re: Выбор значения из массива данных по нескольким условиям
Отправлено: ZORRO2005 от 14.11.2010, 17:18
E3:
=ИНДЕКС(Табель!$D$3:$H$8;ПОИСКПОЗ(B3&C3;Табель!$B$3:$B$8&Табель!$C$3:$C$8;0);ПОИСКПОЗ(D3;Табель!$D$2:$H$2;0))
формула массива
Название: Re: Выбор значения из массива данных по нескольким условиям
Отправлено: DV68 от 14.11.2010, 17:25
Пара вариантов во вложении:

упс, один вариант (формулу массива) уже дали :)
Название: Re: Выбор значения из массива данных по нескольким условиям
Отправлено: sovere от 14.11.2010, 17:26
Спасибо!!!!
Это круто!!
Для простоты избрал второе.
Название: Re: Выбор значения из массива данных по нескольким условиям
Отправлено: ZORRO2005 от 14.11.2010, 18:10
Dmitr68,
Спасибо за интересное решение для определения строки:
ЦитироватьПОИСКПОЗ(2;МУМНОЖ(СЧЁТЕСЛИ(B3:C3;Табель!B$3:C$8);{1:1});0)