возврат значения в ячейке, которая на две строки ниже
Iater
Дата: Суббота, 27.07.2013, 14:25 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Здравствуйте! Во-первых, мне надо найти максимальное значение среди ячеек B33, C33, D33 А потом вернуться значение ячейки под максимальным. т.е. если макс это C33, то мне должно вернуться C35 как это сделать?
Здравствуйте! Во-первых, мне надо найти максимальное значение среди ячеек B33, C33, D33 А потом вернуться значение ячейки под максимальным. т.е. если макс это C33, то мне должно вернуться C35 как это сделать? Iater
Ответить
Сообщение Здравствуйте! Во-первых, мне надо найти максимальное значение среди ячеек B33, C33, D33 А потом вернуться значение ячейки под максимальным. т.е. если макс это C33, то мне должно вернуться C35 как это сделать? Автор - Iater Дата добавления - 27.07.2013 в 14:25
SkyPro
Дата: Суббота, 27.07.2013, 14:38 |
Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация:
255
±
Замечаний:
0% ±
2010
Код
=ЕСЛИ(МАКС(B33;C33;D33)=B33;B35;ЕСЛИ(МАКС(B33;C33;D33)=C33;C35;ЕСЛИ(МАКС(B33;C33;D33)=D33;D35;"х**н там")))
Или обязательно макросом?
Код
=ЕСЛИ(МАКС(B33;C33;D33)=B33;B35;ЕСЛИ(МАКС(B33;C33;D33)=C33;C35;ЕСЛИ(МАКС(B33;C33;D33)=D33;D35;"х**н там")))
Или обязательно макросом?SkyPro
skypro1111@gmail.com
Сообщение отредактировал SkyPro - Суббота, 27.07.2013, 14:40
Ответить
Сообщение Код
=ЕСЛИ(МАКС(B33;C33;D33)=B33;B35;ЕСЛИ(МАКС(B33;C33;D33)=C33;C35;ЕСЛИ(МАКС(B33;C33;D33)=D33;D35;"х**н там")))
Или обязательно макросом?Автор - SkyPro Дата добавления - 27.07.2013 в 14:38
Iater
Дата: Суббота, 27.07.2013, 14:59 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
maxval = Application.WorksheetFunction.Max(Range("B33:33")) нашел максимальное... а дальше как?
maxval = Application.WorksheetFunction.Max(Range("B33:33")) нашел максимальное... а дальше как? Iater
Ответить
Сообщение maxval = Application.WorksheetFunction.Max(Range("B33:33")) нашел максимальное... а дальше как? Автор - Iater Дата добавления - 27.07.2013 в 14:59
Iater
Дата: Суббота, 27.07.2013, 14:59 |
Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
макросом да обязательно - это лишь часть кода
макросом да обязательно - это лишь часть кода Iater
Ответить
Сообщение макросом да обязательно - это лишь часть кода Автор - Iater Дата добавления - 27.07.2013 в 14:59
SkyPro
Дата: Суббота, 27.07.2013, 15:07 |
Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация:
255
±
Замечаний:
0% ±
2010
Если вы используете функции листа, то я выше написал формулу. Переделайте её в макрос. (ЕСЛИ = IF) Лучше приложите пример с исходными данными + результат.
Если вы используете функции листа, то я выше написал формулу. Переделайте её в макрос. (ЕСЛИ = IF) Лучше приложите пример с исходными данными + результат. SkyPro
skypro1111@gmail.com
Сообщение отредактировал SkyPro - Суббота, 27.07.2013, 15:08
Ответить
Сообщение Если вы используете функции листа, то я выше написал формулу. Переделайте её в макрос. (ЕСЛИ = IF) Лучше приложите пример с исходными данными + результат. Автор - SkyPro Дата добавления - 27.07.2013 в 15:07
Michael_S
Дата: Суббота, 27.07.2013, 15:10 |
Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация:
373
±
Замечаний:
0% ±
Excel2016
Iater, потрудились бы пример вложить. Вопрос хоть и понятный, но правила хорошего тона вроде как обязывают...
Iater, потрудились бы пример вложить. Вопрос хоть и понятный, но правила хорошего тона вроде как обязывают...Michael_S
Ответить
Сообщение Iater, потрудились бы пример вложить. Вопрос хоть и понятный, но правила хорошего тона вроде как обязывают...Автор - Michael_S Дата добавления - 27.07.2013 в 15:10
SkyPro
Дата: Суббота, 27.07.2013, 15:23 |
Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация:
255
±
Замечаний:
0% ±
2010
[vba]Код
Sub max() If [b33].Value = Application.WorksheetFunction.max([b33:d33]) Then MsgBox [b35].Value End If If [c33].Value = Application.WorksheetFunction.max([b33:d33]) Then MsgBox [c35].Value End If If [d33].Value = Application.WorksheetFunction.max([b33:d33]) Then MsgBox [d35].Value End If End Sub
[/vba]
[vba]Код
Sub max() If [b33].Value = Application.WorksheetFunction.max([b33:d33]) Then MsgBox [b35].Value End If If [c33].Value = Application.WorksheetFunction.max([b33:d33]) Then MsgBox [c35].Value End If If [d33].Value = Application.WorksheetFunction.max([b33:d33]) Then MsgBox [d35].Value End If End Sub
[/vba] SkyPro
skypro1111@gmail.com
Ответить
Сообщение [vba]Код
Sub max() If [b33].Value = Application.WorksheetFunction.max([b33:d33]) Then MsgBox [b35].Value End If If [c33].Value = Application.WorksheetFunction.max([b33:d33]) Then MsgBox [c35].Value End If If [d33].Value = Application.WorksheetFunction.max([b33:d33]) Then MsgBox [d35].Value End If End Sub
[/vba] Автор - SkyPro Дата добавления - 27.07.2013 в 15:23
Michael_S
Дата: Суббота, 27.07.2013, 15:25 |
Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация:
373
±
Замечаний:
0% ±
Excel2016
Как-то так так. Желтый - формула, синий - UDF (макрос)
Как-то так так. Желтый - формула, синий - UDF (макрос) Michael_S
К сообщению приложен файл:
Iater.xls
(66.0 Kb)
Ответить
Сообщение Как-то так так. Желтый - формула, синий - UDF (макрос) Автор - Michael_S Дата добавления - 27.07.2013 в 15:25
ShAM
Дата: Воскресенье, 28.07.2013, 06:10 |
Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация:
249
±
Замечаний:
0% ±
Excel 2010
Ответить
_Boroda_
Дата: Воскресенье, 28.07.2013, 08:09 |
Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 16738
Репутация:
6534
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
[vba]Код
Sub tt() n_ = Cells(35, WorksheetFunction.Match(WorksheetFunction.Max(Range("B33:D33")), Range("B33:D33")) + 1) End Sub
[/vba] О, блин, сходил в кросс по ссылке выше - там уже почти то же самое написали, только с ноликом
[vba]Код
Sub tt() n_ = Cells(35, WorksheetFunction.Match(WorksheetFunction.Max(Range("B33:D33")), Range("B33:D33")) + 1) End Sub
[/vba] О, блин, сходил в кросс по ссылке выше - там уже почти то же самое написали, только с ноликом _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение [vba]Код
Sub tt() n_ = Cells(35, WorksheetFunction.Match(WorksheetFunction.Max(Range("B33:D33")), Range("B33:D33")) + 1) End Sub
[/vba] О, блин, сходил в кросс по ссылке выше - там уже почти то же самое написали, только с ноликом Автор - _Boroda_ Дата добавления - 28.07.2013 в 08:09
Iater
Дата: Вторник, 20.08.2013, 12:44 |
Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
работает, вот только я не понял как )) кто может на пальцах объяснить? я понял только, что: 1) цифра 35 - это номер строки где мои возвращаемые значения 2) в функции Match понял только что первый аргумент - это макс. среди диапазона B33:D33, а второй аргумент в упор не понимаю ((
работает, вот только я не понял как )) кто может на пальцах объяснить? я понял только, что: 1) цифра 35 - это номер строки где мои возвращаемые значения 2) в функции Match понял только что первый аргумент - это макс. среди диапазона B33:D33, а второй аргумент в упор не понимаю (( Iater
Ответить
Сообщение работает, вот только я не понял как )) кто может на пальцах объяснить? я понял только, что: 1) цифра 35 - это номер строки где мои возвращаемые значения 2) в функции Match понял только что первый аргумент - это макс. среди диапазона B33:D33, а второй аргумент в упор не понимаю (( Автор - Iater Дата добавления - 20.08.2013 в 12:44
Iater
Дата: Вторник, 20.08.2013, 13:31 |
Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
погорячился - теперь не работает ))) решил увеличить диапазон вместо B33:D33 написал A33:E33 и оно сломалось
погорячился - теперь не работает ))) решил увеличить диапазон вместо B33:D33 написал A33:E33 и оно сломалось Iater
Ответить
Сообщение погорячился - теперь не работает ))) решил увеличить диапазон вместо B33:D33 написал A33:E33 и оно сломалось Автор - Iater Дата добавления - 20.08.2013 в 13:31
Serge_007
Дата: Вторник, 20.08.2013, 13:53 |
Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
В Cells(35, 6) - пусто
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение В Cells(35, 6) - пусто Автор - Serge_007 Дата добавления - 20.08.2013 в 13:53
Iater
Дата: Вторник, 20.08.2013, 14:23 |
Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
а если в A33 поставить максимальное значение, то тоже не работает в Cells (35,1) не пусто ведь, но всё равно не выдает результат
а если в A33 поставить максимальное значение, то тоже не работает в Cells (35,1) не пусто ведь, но всё равно не выдает результат Iater
Ответить
Сообщение а если в A33 поставить максимальное значение, то тоже не работает в Cells (35,1) не пусто ведь, но всё равно не выдает результат Автор - Iater Дата добавления - 20.08.2013 в 14:23
Serge_007
Дата: Вторник, 20.08.2013, 14:40 |
Сообщение № 15
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
[vba]Код
Sub test() Dim t As Long t = Cells(35, WorksheetFunction.Match(WorksheetFunction.Max(Range("a33:e33")), _ Range("a33:e33"), 0) + 1) ActiveSheet.Range("e37").Value = t End Sub
[/vba]
[vba]Код
Sub test() Dim t As Long t = Cells(35, WorksheetFunction.Match(WorksheetFunction.Max(Range("a33:e33")), _ Range("a33:e33"), 0) + 1) ActiveSheet.Range("e37").Value = t End Sub
[/vba] Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение [vba]Код
Sub test() Dim t As Long t = Cells(35, WorksheetFunction.Match(WorksheetFunction.Max(Range("a33:e33")), _ Range("a33:e33"), 0) + 1) ActiveSheet.Range("e37").Value = t End Sub
[/vba] Автор - Serge_007 Дата добавления - 20.08.2013 в 14:40
Iater
Дата: Вторник, 20.08.2013, 14:49 |
Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
а вот так выбирает не самое максимальное - цифру 9 в 33 строке
а вот так выбирает не самое максимальное - цифру 9 в 33 строке Iater
Сообщение отредактировал Iater - Вторник, 20.08.2013, 14:49
Ответить
Сообщение а вот так выбирает не самое максимальное - цифру 9 в 33 строке Автор - Iater Дата добавления - 20.08.2013 в 14:49
Serge_007
Дата: Вторник, 20.08.2013, 14:55 |
Сообщение № 17
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
А зачем у Вас +1 в коде? Я тему не читал, поэтому поправил уже имеющийся код Если сдвиг на один столбец от содержащего максимум не нужен - уберите +1
А зачем у Вас +1 в коде? Я тему не читал, поэтому поправил уже имеющийся код Если сдвиг на один столбец от содержащего максимум не нужен - уберите +1 Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение А зачем у Вас +1 в коде? Я тему не читал, поэтому поправил уже имеющийся код Если сдвиг на один столбец от содержащего максимум не нужен - уберите +1 Автор - Serge_007 Дата добавления - 20.08.2013 в 14:55
Iater
Дата: Вторник, 20.08.2013, 14:56 |
Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
ааа, так это оказывается сдвиг! теперь понял, спасибо )
ааа, так это оказывается сдвиг! теперь понял, спасибо ) Iater
Ответить
Сообщение ааа, так это оказывается сдвиг! теперь понял, спасибо ) Автор - Iater Дата добавления - 20.08.2013 в 14:56
_Boroda_
Дата: Вторник, 20.08.2013, 23:24 |
Сообщение № 19
Группа: Админы
Ранг: Местный житель
Сообщений: 16738
Репутация:
6534
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Сдвиг был затем, что первоначально диапазон начинался с В. Правда, потом он поменялся на А, а 1 почему-то не стерли. Iater, если другой диапазон будет начинаться, например, с D, то нужно написать не -1, а -3 В общем случае [vba]Код
Sub tt() Dim d_ As Range Set d_ = Range("d33:f33") n_ = Cells(d_.Row + 2, WorksheetFunction.Match(WorksheetFunction.Max(d_), d_) + d_.Column - 1) End Sub
[/vba]
Сдвиг был затем, что первоначально диапазон начинался с В. Правда, потом он поменялся на А, а 1 почему-то не стерли. Iater, если другой диапазон будет начинаться, например, с D, то нужно написать не -1, а -3 В общем случае [vba]Код
Sub tt() Dim d_ As Range Set d_ = Range("d33:f33") n_ = Cells(d_.Row + 2, WorksheetFunction.Match(WorksheetFunction.Max(d_), d_) + d_.Column - 1) End Sub
[/vba] _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Сдвиг был затем, что первоначально диапазон начинался с В. Правда, потом он поменялся на А, а 1 почему-то не стерли. Iater, если другой диапазон будет начинаться, например, с D, то нужно написать не -1, а -3 В общем случае [vba]Код
Sub tt() Dim d_ As Range Set d_ = Range("d33:f33") n_ = Cells(d_.Row + 2, WorksheetFunction.Match(WorksheetFunction.Max(d_), d_) + d_.Column - 1) End Sub
[/vba] Автор - _Boroda_ Дата добавления - 20.08.2013 в 23:24