Страницы: 1
RSS
Формирование строки по 3м параметрам, исключая нулевые значения
 
Добрый день!
Уважаемые форумчане, прошу помощи в решении следующей задачи:

Необходимо чтобы в табл.2 в строке для сотрудника с определенной категорией осуществлялся вывод названия сиз и его норм выдачи в формате "кол-во в год" вместо например 0,5, данные берутся из табл.1. Если у категории стоит в нормах 0 по сиз - то в строке этот сиз игнорируется и пишется следующий с нормами выше 0

Пример таблиц в приложенном файле.
 
ElenaNSM, UDF, вводится в строку как формула массива. Аргументы - таблица данных и категория сотрудника.
Код
Function El(data As Range, cat) As String()
Dim i&, k&, d(), n(), t$()
  n = WorksheetFunction.Index(data.Value, 1, 0)
  d = WorksheetFunction.Index(data.Value, cat + 1, 0)
  ReDim t(0 To Application.Caller.Columns.Count - 1)
  For i = 2 To UBound(d)
    If d(i) > 0 Then
      t(k) = n(i)
      t(k + 1) = "1" & IIf(d(i) = 1, "", " на " & Round(1 / d(i), 1) & " года")
      k = k + 2
    End If
  Next
  El = t
End Function
 
Спасибо!

но почему-то в моем рабочем файле не хочет работать, выдает результат #ЗНАЧ
Это может быть из-за того, что таблица с нормами и названиями, которую указываем как диапазон, находится на другом листе в файле?
 
Видимо, не ввели функцию как формула массива. Обратите внимание на фигурные скобки в строке формул.
F1 - Создание формул, раздел Использование формул массива и констант массива
 
вот как все у меня выглядит, скобки есть, формулу не изменяла

файлы удалены: превышение допустимого размера вложения [МОДЕРАТОР]
 
ElenaNSM, функция вводится не в одну ячейку, а сразу в строку: выделите R5:BO5 (или где там конец таблицы) и нажмите Ctrl+Shift+Enter.
Но пример не соответствовал структуре реальных данных. В примере чередуются столбцы "СИЗ 1 нормы 1 СИЗ 2 нормы 2 " и т.д., и такие данные формирует функция. А тут добавились "ЕИ1 ЕИ2" - это тоже вычисляемые ячейки или туда что-то будет вписываться вручную?
Еще - исходя из примера, я рассчитывал, что категория - это просто номер строки в таблице. А тут "8.1, 8.2" - значит, надо делать поиск по столбцу.
В общем, продолжать здесь не буду. Возможно, в привате и небезвозмездно.
 
Цитата
ElenaNSM написал:
осуществлялся вывод названия сиз и его норм выдачи в формате "кол-во в год"
Как сделать вывод норм в нужном формате - смотрите пример. А вот как выводить название сиз - не понятно, что Вы имели ввиду.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Имеется ввиду, например:
для сотрудника в строку в табл.2 на пересечении столбцов СИЗ1, СИЗ2... и строки "категория" должны выводится те наименования из табл.1, у которых норма выдачи не равна 0, в случае если норма выдачи 0 - то выводить название сиз в строку не нужно, нужно перейти к следующему у которого норма выдачи больше 0 (1, 0.5, 0.25...). У разных сотрудников по разному, у кого-то может быть 15 наименований, а у кого-то всего 5.
Для меня непонятно как сделать, чтобы игнорировались сизы с нулевой нормой и перескакивали на следующие
 
ElenaNSM, хотел уточнить. в примере из #1 в F12 должно быть "название СИЗ 2"  ? или я ошибся?
 
нет, должно быть название СИЗ 3, т.к у 4й категории в нормах выдачи СИЗ 1 стоит 0, следовательно его пропускаем, в строку начинают вводиться данные с СИЗ 2
Страницы: 1
Наверх