Добрый день! Нужно округлить цифры в массиве с фильтром по столбцу А - "стул" до тысяч, чтобы получились суммы как, например, в В16 или В17, я сделала формулой округления. Но эти формулы обрабатывают одну ячейку, а надо весь выбранный массив. Пока копирую выбранный массив в другое место, затем еще в другое место - формулы, затем значениями вставляю построчно обратно в массив. Но муторно, т.к. таблицы длинные, фильтр мешает, т.к. в "табуретках" эти округления не нужны. Может умные люди уже давно что-то крутое придумали? Буду благодарна!
Добрый день! Нужно округлить цифры в массиве с фильтром по столбцу А - "стул" до тысяч, чтобы получились суммы как, например, в В16 или В17, я сделала формулой округления. Но эти формулы обрабатывают одну ячейку, а надо весь выбранный массив. Пока копирую выбранный массив в другое место, затем еще в другое место - формулы, затем значениями вставляю построчно обратно в массив. Но муторно, т.к. таблицы длинные, фильтр мешает, т.к. в "табуретках" эти округления не нужны. Может умные люди уже давно что-то крутое придумали? Буду благодарна!LanaB
Sub stul() Application.ScreenUpdating = False For r = 2 To Cells(Rows.Count, 2).End(xlUp).Row If Cells(r, 1) = "стул" Then For c = 2 To 6 ' столбцы If Not IsEmpty(Cells(r, c).Value) Then Cells(r, c) = WorksheetFunction.Round(Cells(r, c), -3) Next End If Next Application.ScreenUpdating = True End Sub
[/vba]
Добрый день. Вариант макросом [vba]
Код
Sub stul() Application.ScreenUpdating = False For r = 2 To Cells(Rows.Count, 2).End(xlUp).Row If Cells(r, 1) = "стул" Then For c = 2 To 6 ' столбцы If Not IsEmpty(Cells(r, c).Value) Then Cells(r, c) = WorksheetFunction.Round(Cells(r, c), -3) Next End If Next Application.ScreenUpdating = True End Sub
1)в "левые" ячейки пишем: в одну 500, во вторую 1000 2)копируем ячейку с 500 3)выделяем отфильтрованный диапазон 4)жмем F5 (клавишу) только видимые ячейки - ОК 5)жмем F5 (клавишу) константы - ОК 6)Вставить - специальная вставка - сложить 7)копируем ячейку с 1000 8)выделяем отфильтрованный диапазон 9)жмем F5 (клавишу) только видимые ячейки - ОК 10)жмем F5 (клавишу) константы - ОК 11)Вставить - специальная вставка - разделить 12)жмем Ctrl+H найти: ,* заменить на: ни чего не писать заменить все 13)копируем ячейку с 1000 14)выделяем отфильтрованный диапазон 15)жмем F5 (клавишу) только видимые ячейки - ОК 16)жмем F5 (клавишу) константы - ОК 17)Вставить - специальная вставка -умножить 18)восстанавливаем формат ячеек
1)в "левые" ячейки пишем: в одну 500, во вторую 1000 2)копируем ячейку с 500 3)выделяем отфильтрованный диапазон 4)жмем F5 (клавишу) только видимые ячейки - ОК 5)жмем F5 (клавишу) константы - ОК 6)Вставить - специальная вставка - сложить 7)копируем ячейку с 1000 8)выделяем отфильтрованный диапазон 9)жмем F5 (клавишу) только видимые ячейки - ОК 10)жмем F5 (клавишу) константы - ОК 11)Вставить - специальная вставка - разделить 12)жмем Ctrl+H найти: ,* заменить на: ни чего не писать заменить все 13)копируем ячейку с 1000 14)выделяем отфильтрованный диапазон 15)жмем F5 (клавишу) только видимые ячейки - ОК 16)жмем F5 (клавишу) константы - ОК 17)Вставить - специальная вставка -умножить 18)восстанавливаем формат ячеекNic70y
Не копируя в другом месте, да, Сергей ( sboy, ), абсолютно прав - только макросом. Если же сложно макросом, то по любому через формулы в "другом месте" . Могу предложить вариант этих формул:
Код
=ЕСЛИ(B2;ЕСЛИ($A2="стул";ОКРУГЛТ(B2;1000);B2);"")
Не копируя в другом месте, да, Сергей ( sboy, ), абсолютно прав - только макросом. Если же сложно макросом, то по любому через формулы в "другом месте" . Могу предложить вариант этих формул: