Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сложить каждую вторую ячейку кодом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сложить каждую вторую ячейку кодом (Макросы/Sub)
Сложить каждую вторую ячейку кодом
gizon Дата: Суббота, 19.12.2020, 09:57 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте, подскажите, пожалуйста, как сложить каждую вторую ячейку, начиная с D3, до H3, но кодом? То есть заменить формулу
Код
=СУММ(D3;F3;H3).
К сообщению приложен файл: _1.xls (26.0 Kb)


Сообщение отредактировал gizon - Суббота, 19.12.2020, 09:58
 
Ответить
СообщениеЗдравствуйте, подскажите, пожалуйста, как сложить каждую вторую ячейку, начиная с D3, до H3, но кодом? То есть заменить формулу
Код
=СУММ(D3;F3;H3).

Автор - gizon
Дата добавления - 19.12.2020 в 09:57
Pelena Дата: Суббота, 19.12.2020, 11:10 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
[vba]
Код
Sub summa()
    Dim c&, s
    For c = 4 To 8 Step 2
        s = s + Cells(3, c)
    Next c
    Cells(3, 2) = s
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
[vba]
Код
Sub summa()
    Dim c&, s
    For c = 4 To 8 Step 2
        s = s + Cells(3, c)
    Next c
    Cells(3, 2) = s
End Sub
[/vba]

Автор - Pelena
Дата добавления - 19.12.2020 в 11:10
gizon Дата: Суббота, 19.12.2020, 11:18 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, спасибо огромное.


Сообщение отредактировал gizon - Суббота, 19.12.2020, 11:18
 
Ответить
СообщениеPelena, спасибо огромное.

Автор - gizon
Дата добавления - 19.12.2020 в 11:18
Gustav Дата: Суббота, 19.12.2020, 22:22 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2744
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Конечно, могу не представлять всех целей, которые преследует ТС, но что-то мне подсказывает, что это в первую очередь уход от утомительного создания списка через запятую вручную.

А ведь чтобы не генерировать список ячеек для суммирования через запятую (а он может быть весьма внушительным и его сопровождение может быть затруднительным), можно вспомнить, что существуют различные суммирующие функции с условиями. Например, следующие две формулы делают ту же работу, что и формула из сообщения №1:
Код
=СУММПРОИЗВ(D3:H3; --(ОСТАТ(СТОЛБЕЦ(D3:H3)-СТОЛБЕЦ(D3)+1;2)=1))

Код
=СУММПРОИЗВ(D3:H3; --ЕЧЁТН(СТОЛБЕЦ(D3:H3)))

Но в отличии от формулы сообщения №1 конечная граница диапазона суммирования формул с условиями может быть легко расширена.

Кроме того, первая формула с условием может быть использована с другим шагом ячеек. Например, расширим наш диапазон до D3:M3 (из 10 ячеек) и просуммируем ячейки не через одну, а через две, начиная с первой. Т.е. в сумму должны будут попасть ячейки: 1-я, 4-я, 7-я, 10-я. Для этого изменим формулу следующим образом:
Код
=СУММПРОИЗВ(D3:M3; --(ОСТАТ(СТОЛБЕЦ(D3:M3)-СТОЛБЕЦ(D3)+1;3)=1))

Или можно организовать суммирование ячеек через две, начиная не с первой, а, скажем, со второй ячейки, т.е. сумма должна будет содержать 2-ю, 5-ю и 8-ю ячейки диапазона D3:M3:
Код
=СУММПРОИЗВ(D3:M3; --(ОСТАТ(СТОЛБЕЦ(D3:M3)-СТОЛБЕЦ(D3)+1;3)=2))

Наглядно можно видеть, что при этом меняется - последнее число в формуле "=2))". Также очевидно, что предпоследнее число в формуле ";3)=" отвечает за шаг суммируемых ячеек.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеКонечно, могу не представлять всех целей, которые преследует ТС, но что-то мне подсказывает, что это в первую очередь уход от утомительного создания списка через запятую вручную.

А ведь чтобы не генерировать список ячеек для суммирования через запятую (а он может быть весьма внушительным и его сопровождение может быть затруднительным), можно вспомнить, что существуют различные суммирующие функции с условиями. Например, следующие две формулы делают ту же работу, что и формула из сообщения №1:
Код
=СУММПРОИЗВ(D3:H3; --(ОСТАТ(СТОЛБЕЦ(D3:H3)-СТОЛБЕЦ(D3)+1;2)=1))

Код
=СУММПРОИЗВ(D3:H3; --ЕЧЁТН(СТОЛБЕЦ(D3:H3)))

Но в отличии от формулы сообщения №1 конечная граница диапазона суммирования формул с условиями может быть легко расширена.

Кроме того, первая формула с условием может быть использована с другим шагом ячеек. Например, расширим наш диапазон до D3:M3 (из 10 ячеек) и просуммируем ячейки не через одну, а через две, начиная с первой. Т.е. в сумму должны будут попасть ячейки: 1-я, 4-я, 7-я, 10-я. Для этого изменим формулу следующим образом:
Код
=СУММПРОИЗВ(D3:M3; --(ОСТАТ(СТОЛБЕЦ(D3:M3)-СТОЛБЕЦ(D3)+1;3)=1))

Или можно организовать суммирование ячеек через две, начиная не с первой, а, скажем, со второй ячейки, т.е. сумма должна будет содержать 2-ю, 5-ю и 8-ю ячейки диапазона D3:M3:
Код
=СУММПРОИЗВ(D3:M3; --(ОСТАТ(СТОЛБЕЦ(D3:M3)-СТОЛБЕЦ(D3)+1;3)=2))

Наглядно можно видеть, что при этом меняется - последнее число в формуле "=2))". Также очевидно, что предпоследнее число в формуле ";3)=" отвечает за шаг суммируемых ячеек.

Автор - Gustav
Дата добавления - 19.12.2020 в 22:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сложить каждую вторую ячейку кодом (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!