buchlotnik, задача так поставлена, что не понятно, что в итоге нужно. Я понял, что в D1 нужно выводить команду, самую часто встречающуюся в диапазоне С2:D11. Пусть все ячейки в диапазоне заполнены. Если таких команд >1, то оставляем одну.
buchlotnik, задача так поставлена, что не понятно, что в итоге нужно. Я понял, что в D1 нужно выводить команду, самую часто встречающуюся в диапазоне С2:D11. Пусть все ячейки в диапазоне заполнены. Если таких команд >1, то оставляем одну.ZORRO2005
buchlotnik, Вы Великий ГУРУ!!! Я 2 недели голову ломал над этим. ДА, Ваша формула работает (сообщение № 9). Благодарю от души друже Всем выражаю огромную благодарность, кто принимал участие в решении данной задачи. МОЛОДЦЫ!!!
buchlotnik, Вы Великий ГУРУ!!! Я 2 недели голову ломал над этим. ДА, Ваша формула работает (сообщение № 9). Благодарю от души друже Всем выражаю огромную благодарность, кто принимал участие в решении данной задачи. МОЛОДЦЫ!!!Кузьмич
Ну, теперь вся утка наша...
Сообщение отредактировал Кузьмич - Вторник, 05.05.2015, 01:41
Кузьмич, спасибо за добрые слова. И всё же зайдите в эту тему в след. понедельник - думаю будет выложено много гораздо более коротких и элегантных решений.
Кузьмич, спасибо за добрые слова. И всё же зайдите в эту тему в след. понедельник - думаю будет выложено много гораздо более коротких и элегантных решений.buchlotnik
Не совсем так. Из предложенного диапазона C2:D11 существует команда "фаворит", которая повторяется в каждой строчке в разных столбцах (слева столбец означает, что команда играет дома, а правый столбец - в гостях), её мы и выводим в D1. Сама с собой конечно же команда играть не может, исключено. Так же в заданном диапазоне C2:D11 можно видеть команды которые не повторяются, но бывают исключения. Одна из таких команд может повториться и второй раз (реванш). Значит >1 не подходит, будет выдавать 2 значения. Михаил предусмотрел такую ситуацию и в D1 выводится фаворит даже при реваншах, проверено! Понимаю, что виноват и не полностью разъяснил суть всей задачи. Про исключения я запамятовал, так что не серчайте сильно на меня. Я тут новенький, привыкаю ещё =).
Не совсем так. Из предложенного диапазона C2:D11 существует команда "фаворит", которая повторяется в каждой строчке в разных столбцах (слева столбец означает, что команда играет дома, а правый столбец - в гостях), её мы и выводим в D1. Сама с собой конечно же команда играть не может, исключено. Так же в заданном диапазоне C2:D11 можно видеть команды которые не повторяются, но бывают исключения. Одна из таких команд может повториться и второй раз (реванш). Значит >1 не подходит, будет выдавать 2 значения. Михаил предусмотрел такую ситуацию и в D1 выводится фаворит даже при реваншах, проверено! Понимаю, что виноват и не полностью разъяснил суть всей задачи. Про исключения я запамятовал, так что не серчайте сильно на меня. Я тут новенький, привыкаю ещё =).Кузьмич
Ну, теперь вся утка наша...
Сообщение отредактировал Кузьмич - Вторник, 05.05.2015, 15:39
Можно в vba написать формулу , так будет поменьше символов!:))) файл прилагается!
[vba]
Код
Function poisk(range1 As range) Application.Volatile p1 = 0
For i = 1 To range1.Rows.Count For j = 1 To range1.Columns.Count If WorksheetFunction.CountIf(range1, range1.Cells(i, j)) > p1 Then poisk = range1.Cells(i, j) p1 = WorksheetFunction.CountIf(range1, range1.Cells(i, j)) End If
Next Next
End Function
[/vba] [moder]Оформите код тегами (кнопка #)[/moder]
Можно в vba написать формулу , так будет поменьше символов!:))) файл прилагается!
[vba]
Код
Function poisk(range1 As range) Application.Volatile p1 = 0
For i = 1 To range1.Rows.Count For j = 1 To range1.Columns.Count If WorksheetFunction.CountIf(range1, range1.Cells(i, j)) > p1 Then poisk = range1.Cells(i, j) p1 = WorksheetFunction.CountIf(range1, range1.Cells(i, j)) End If
Next Next
End Function
[/vba] [moder]Оформите код тегами (кнопка #)[/moder]green
Function Rio$(RngA As Range) Dim RngX As Range, i#, j# For Each RngX In RngA j = WorksheetFunction.CountIf(RngA, RngX) If j > i Then i = j: Rio = RngX.Value End If Next RngX End Function
[/vba]
green, здравствуйте.
Вне конкурса. Можно и за один цикл:
[vba]
Код
Function Rio$(RngA As Range) Dim RngX As Range, i#, j# For Each RngX In RngA j = WorksheetFunction.CountIf(RngA, RngX) If j > i Then i = j: Rio = RngX.Value End If Next RngX End Function
Если искомого значения в одном из столбцов может не быть, то меня массивная формула 175 обнаружился косяк, 182 без "=" Формула не протягиваемая Плюс макрофункция 118 символов
Если искомого значения в одном из столбцов может не быть, то меня массивная формула 175 обнаружился косяк, 182 без "=" Формула не протягиваемая Плюс макрофункция 118 символовkrosav4ig