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

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

Из правил форума: Тема должна отражать суть вопроса, топики типа "help please" будут удаляться!

Извините, Гость, но вы забанены и поэтому не можете использовать систему личных сообщений.
Уважаемый пользователь, Вы вошли на форум с подозрительного ip-адреса, который ранее был задействован в рассылке спама. Возможно Вы попали в этот список по ошибке. Если это случилось, свяжитесь, пожалуйста, с администратором по электронному адресу, указан
Вы забанены навсегда.

Автор Тема: Выбор значения из массива данных по нескольким условиям  (Прочитано 2621 раз)

sovere

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 2

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

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

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

Буду признателен за подсказку.
Записан

Hugo121

  • Постоялец
  • ***
  • Уважение: +42/-0
  • Оффлайн Оффлайн
  • Сообщений: 283

Как вариант макросом, хотя вероятно можно сделать и формулами. Но если данных много, лучше макросом.
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
Диапазоны можно сделать динамическими, и можно результат собирать в третий массив, будет быстрее выгрузка, но чуть непонятнее код :)
« Последнее редактирование: 14.11.2010, 18:08:37 от Hugo121 »
Записан
webmoney: E265281470651 Z422237915069 R41892628200

ZORRO2005

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +91/-0
  • Оффлайн Оффлайн
  • Сообщений: 851

E3:
=ИНДЕКС(Табель!$D$3:$H$8;ПОИСКПОЗ(B3&C3;Табель!$B$3:$B$8&Табель!$C$3:$C$8;0);ПОИСКПОЗ(D3;Табель!$D$2:$H$2;0))Формула массива
Записан

DV68

  • Постоялец
  • ***
  • Уважение: +36/-0
  • Оффлайн Оффлайн
  • Сообщений: 372

Пара вариантов во вложении:

упс, один вариант (формулу массива) уже дали :)
Записан

sovere

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 2

Спасибо!!!!
Это круто!!
Для простоты избрал второе.
Записан

ZORRO2005

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +91/-0
  • Оффлайн Оффлайн
  • Сообщений: 851

Dmitr68,
Спасибо за интересное решение для определения строки:
Цитировать
ПОИСКПОЗ(2;МУМНОЖ(СЧЁТЕСЛИ(B3:C3;Табель!B$3:C$8);{1:1});0)
Записан
 



Темы без ответов

23.07.2014 13:55 Использование "таблицы" при защищенном листе 56
20.06.2014 00:43 можно ли делать веб-запросы с разными урл автоматически. Урл имеют вид: урл1, ур 457
21.05.2014 11:29 Как отключить сообщение "Открыть этот файл?" при открытии по гиперссылке? 1398
13.05.2014 12:59 Помогите составить формулу в excel 3776
11.05.2014 13:43 неактивна панель кнопок 1831
21.04.2014 23:46 Как отобразить в сводной таблице всё возможное? 2474
01.04.2014 16:35 Операции с датами в Excel 2003 2376
01.04.2014 16:31 Общая сводная диаграмма 2087
28.03.2014 13:24 Администраторам сайта 340
17.03.2014 19:46 Таблица подстановки 2583





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.181 секунд. Запросов: 38.