Здравствуйте, Уважаемые форумчане !!! Помогите на основание формулы , сделать макрос, или если я не ошибаюсь, функцию, в которой я буду только указывать нужные ячейки. Пример прикрепляю, если что то не понятно, пишите.
Здравствуйте, Уважаемые форумчане !!! Помогите на основание формулы , сделать макрос, или если я не ошибаюсь, функцию, в которой я буду только указывать нужные ячейки. Пример прикрепляю, если что то не понятно, пишите.Chelovekov
Chelovekov, Нет, скорее всего не сложное. Просто чем проще Вы зададите вопрос, тем больше вероятности получить быстрый ответ. У Вас весь вопрос спрятан в файл, что требует от "помощника" его скачивать и самому в нём разбираться. Лучше всего попытаться начать делать что-то самому, а сюда задавать конкретные вопросы.
Chelovekov, Нет, скорее всего не сложное. Просто чем проще Вы зададите вопрос, тем больше вероятности получить быстрый ответ. У Вас весь вопрос спрятан в файл, что требует от "помощника" его скачивать и самому в нём разбираться. Лучше всего попытаться начать делать что-то самому, а сюда задавать конкретные вопросы.Roman777
Chelovekov, здравствуйте, пример UDF для первой задачи: [vba]
Код
Function Sovpad(a, b, c, d, e, f, g) If a = "" Then Sovpad = "": Exit Function
If b = c Then If d <> 0 And e <> 0 Then Sovpad = "Да" Else Sovpad = "Нет" End If Else If f <> 0 And g <> 0 Then Sovpad = "Да" Else Sovpad = "Нет" End If End If End Function
[/vba] формула в ячейке:
Код
=Sovpad(A5;$B$2;B5;D5;F5;G5;I5)
Дальше делайте по аналогии, там ничего сложного нет.
Chelovekov, здравствуйте, пример UDF для первой задачи: [vba]
Код
Function Sovpad(a, b, c, d, e, f, g) If a = "" Then Sovpad = "": Exit Function
If b = c Then If d <> 0 And e <> 0 Then Sovpad = "Да" Else Sovpad = "Нет" End If Else If f <> 0 And g <> 0 Then Sovpad = "Да" Else Sovpad = "Нет" End If End If End Function
[/vba] формула в ячейке:
Код
=Sovpad(A5;$B$2;B5;D5;F5;G5;I5)
Дальше делайте по аналогии, там ничего сложного нет.Manyasha
Универсальная для любого количества ячеек. Для чисел и букв Можно писать так
Код
=Sovpad(A61;B$21;B61;D61;E61;F61;G61;H61;I61)
или так
Код
=Sovpad(A61;B$21;B61;D61;E61;F61;G61:H61;I61)
или так
Код
=Sovpad(A61;B$21;B61;D61:F61;G61:I61)
или так
Код
=Sovpad(A61;B$21;B61;D61:I61)
Короче - 3 первых аргумента обязательны, а дальше пишем как хотим - хоть все вместе одной ссылкой, хоть каждую ячейку по отдельности, хоть выборочными диапазонами
[vba]
Код
Function Sovpad(A, B, C, ParamArray z()) If A = "" Then Sovpad = "" Else For i = 0 To UBound(z) n_ = n_ + z(i).Count Next i ReDim ar(n_ - 1) For i = 0 To UBound(z) For j = 1 To z(i).Count ar(nn_) = z(i)(j).Value nn_ = nn_ + 1 Next j Next i If n_ Mod 2 Then Sovpad = "Неверное кол-во ячеек в 4-м и далее аргументах" Else k_ = n_ / 2 If UCase(B) <> UCase(C) Then i0_ = k_ End If On Error Resume Next For i = i0_ To i0_ + k_ - 1 aaa = 1 / Replace(ar(i), "Да", 1) If Err Then Sovpad = "Нет" Exit Function End If Next i Sovpad = "Да" End If End If End Function
[/vba]
Универсальная для любого количества ячеек. Для чисел и букв Можно писать так
Код
=Sovpad(A61;B$21;B61;D61;E61;F61;G61;H61;I61)
или так
Код
=Sovpad(A61;B$21;B61;D61;E61;F61;G61:H61;I61)
или так
Код
=Sovpad(A61;B$21;B61;D61:F61;G61:I61)
или так
Код
=Sovpad(A61;B$21;B61;D61:I61)
Короче - 3 первых аргумента обязательны, а дальше пишем как хотим - хоть все вместе одной ссылкой, хоть каждую ячейку по отдельности, хоть выборочными диапазонами
[vba]
Код
Function Sovpad(A, B, C, ParamArray z()) If A = "" Then Sovpad = "" Else For i = 0 To UBound(z) n_ = n_ + z(i).Count Next i ReDim ar(n_ - 1) For i = 0 To UBound(z) For j = 1 To z(i).Count ar(nn_) = z(i)(j).Value nn_ = nn_ + 1 Next j Next i If n_ Mod 2 Then Sovpad = "Неверное кол-во ячеек в 4-м и далее аргументах" Else k_ = n_ / 2 If UCase(B) <> UCase(C) Then i0_ = k_ End If On Error Resume Next For i = i0_ To i0_ + k_ - 1 aaa = 1 / Replace(ar(i), "Да", 1) If Err Then Sovpad = "Нет" Exit Function End If Next i Sovpad = "Да" End If End If End Function
А вот такой, вопрос, в стандартных функциях Екселя, всегда есть примечание, ну что это за переменная, текст это или диапазон. А можно ли в функцию которая в сообщение 6 тоже так сделать ? Это для удобства что бы не забывать что куда вводить ?
А вот такой, вопрос, в стандартных функциях Екселя, всегда есть примечание, ну что это за переменная, текст это или диапазон. А можно ли в функцию которая в сообщение 6 тоже так сделать ? Это для удобства что бы не забывать что куда вводить ?Chelovekov