Приветствую всех! Помогите пожалуйста найти решение по автоматизации таблички. Пример основан на работе цеха полиграфии, склейка коробок Суть алгоритма такова:
Существуют 3 условия вводимые вручную: - тип склейки; - количество клеевых клапанов; - уровень сложности;
Затем по табличке нужно найти столбец где все 3 условия совпадают и результатом должен стать № этого столбца.
Возможно, несовершенна сама табличка, можете предложить заменить + на числа и т.д. Буду благодарен за любые решения
Приветствую всех! Помогите пожалуйста найти решение по автоматизации таблички. Пример основан на работе цеха полиграфии, склейка коробок Суть алгоритма такова:
Существуют 3 условия вводимые вручную: - тип склейки; - количество клеевых клапанов; - уровень сложности;
Затем по табличке нужно найти столбец где все 3 условия совпадают и результатом должен стать № этого столбца.
Возможно, несовершенна сама табличка, можете предложить заменить + на числа и т.д. Буду благодарен за любые решенияSony
Смешной рабоче-крестьянский вариант (особенно по сравнению с элегантной формулой Pelena). Но мне, не гуру Экселя, вот так было бы проще сделать
Смешной рабоче-крестьянский вариант (особенно по сравнению с элегантной формулой Pelena). Но мне, не гуру Экселя, вот так было бы проще сделатьabtextime
Показалось забавным решить эту задачу при помощи UDF[vba]
Код
Function УровеньСложности(Склейка As String, Клапаны As Integer, Сложность As Integer) Dim Sk(), Kl(), Sl() Dim aSk As Integer, I As Integer Склейка = LCase(Склейка) If InStr(Склейка, "машинная") <> 0 Then aSk = 1 Else _ If InStr(Склейка, "ручная") <> 0 Then aSk = 2 Else Exit Function If Клапаны > 7 Or Сложность > 6 Then Exit Function Sk = Range("C5:P6").Value Kl = Range("C7:P13").Value Sl = Range("C14:P19").Value For I = 1 To 14 If Len(Sk(aSk, I)) + Len(Kl(Клапаны, I)) + Len(Sl(Сложность, I)) = 3 Then УровеньСложности = I Exit Function End If Next End Function
[/vba]
Показалось забавным решить эту задачу при помощи UDF[vba]
Код
Function УровеньСложности(Склейка As String, Клапаны As Integer, Сложность As Integer) Dim Sk(), Kl(), Sl() Dim aSk As Integer, I As Integer Склейка = LCase(Склейка) If InStr(Склейка, "машинная") <> 0 Then aSk = 1 Else _ If InStr(Склейка, "ручная") <> 0 Then aSk = 2 Else Exit Function If Клапаны > 7 Or Сложность > 6 Then Exit Function Sk = Range("C5:P6").Value Kl = Range("C7:P13").Value Sl = Range("C14:P19").Value For I = 1 To 14 If Len(Sk(aSk, I)) + Len(Kl(Клапаны, I)) + Len(Sl(Сложность, I)) = 3 Then УровеньСложности = I Exit Function End If Next End Function