Страницы: 1
RSS
Макрос найти две рядом стоящие ячейки больше нуля, сложить их, результат записать в крайнюю правую, крайнюю левую обнулить
 
Имеется массив данных с числами. Он очень большой, поэтому в файл скопировала только часть, а тренировалась на части от этой части )))

Условия: найти две ячейки рядом больше нуля, сложить их и результат сложения записать в крайнюю правую ячейку, а предыдущую обнулить. Иначе записываем значения ячеек.

Мы сделали этот процесс с помощью форму, но все это занимает 6 листов (сложили, обнулили и тп), так как максимально рядом может стоять 4 положительных числа. Не оптимально, и файл не подъемный становится.
Попыталась прописать макрос. В этом я не профи. Работает не корректно. Складывает, но не все ячейки. И не обнуляет.

Прошу помощи экспертов =)
 
покажите, какой должен быть итог
 
Тоже не совсем понял=(
C2-C4
 
Цитата
SovAnna написал: найти две ячейки рядом больше нуля
рядом по вертикали? или по горизонтали?
Так?
 
Цитата
skiv17 написал: рядом по вертикали? или по горизонтали?
Вокруг

SovAnna, в вашем конкретном случае пример это не только набор исходных, но и нечто, отражающее принцип задачи.
Ну наверно имеется ввиду строка, но не понятно что куда прописывается, что и где обнуляется.
По вопросам из тем форума, личку не читаю.
 
skiv17, БМВ, складываем ячейки рядом в каждой строке. Допустим строка 1 1 1 1 0 1 0 0 1 1 Итог 0 0 0 4 0 1 0 0 0 2
Изменено: SovAnna - 28.05.2018 08:26:59
 
skiv17, именно так. вопрос, как вы это сделали? )))
 
skiv17, а, только результат нужно записать в ячейку, в данном случае, D4
 
Цитата
SovAnna написал: две рядом стоящие ячейки больше нуля, сложить их, результат записать в крайнюю правую, крайнюю левую обнулить
Цитата
SovAnna написал: складываем ячейки рядом в каждой строке. Допустим строка 1 1 1 1 0 1 0 0 1 1 Итог 0 0 0 4 0 1 0 0 0 2
Обалдеть можно, однако... :)А слабо простым языком, как для родной бабушки, объяснить ГЕНЕРАЛЬНУЮ ИДЕЮ сей затеи? Как потом итоги подбивать думаете?

Если по годам да кварталам, то...
Изменено: Z - 28.05.2018 08:55:14
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Z, Мне не нужны суммы по годам и по кварталам. В итоге должна быть новая таблица с таким же размером столбцов и строк. Только не должно быть чисел в смежных ячейках. Т.е. как только видим два значения больше нуля рядом (А1>0 и В1>0), складываем (А1+В1), а результат вписываем в В1 и тп. Причем значение следующей ячейки С1 мы уже будем сравнивать с новым значением ячейки В1. Если смежные ячейки равны нулю или одно из них равно нулю, тогда ячейки приравниваем их значениям.
 
Код
Sub События_2()
    Dim i%, j%, gr As Range, itog As Range
    Set gr = Лист1.[a4:e14]
    Set itog = Лист2.[a4:e14]
    itog.ClearContents
    gr.Copy itog
    For i = 1 To itog.Rows.Count
        For j = 1 To itog.Columns.Count - 1
            If itog(i, j) > 0 And itog(i, j + 1) > 0 Then _
                itog(i, j + 1) = itog(i, j) + itog(i, j + 1): itog(i, j) = 0
    Next j, i
End Sub
"Все гениальное просто, а все простое гениально!!!"
 
Диапазоны, задал как  сообщении №5
"Все гениальное просто, а все простое гениально!!!"
 
Z, а идея в следующем, необходимо найти событие - окончание теоретического курса у студентов =) число в ячейке - количество недель обучения. Он длится не более 4 кв, т.е будет макс 4 ячейки подряд больше нуля. как только он заканчивается идет ноль и тп. Нужно получить общее число недель в курсе.
 
Nordheim, спасибо! работает!
буду разбираться, где был мой косяк  =)
Изменено: SovAnna - 28.05.2018 10:35:40
 
Цитата
SovAnna написал:
будет макс 4 ячейки подряд больше нуля. как только он заканчивается идет ноль
То есть из 1 1 1 1 1 1 1 1 должно получиться 0 0 0 4 0 0 0 4 ?
Если да, то в код Nordheim надо добавить проверку в 9 строке
Код
            If itog(i, j) > 0 And itog(i, j + 1) > 0 And j Mod 4 <> 0 Then _
 
Казанский, не, максимально рядом могут стоять 4 числа>0, те 1 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 . Это не условие, а факт по графику обучения =)
Изменено: SovAnna - 28.05.2018 10:43:32
 
Цитата
SovAnna написал: Он длится не более 4 кв, т.е будет макс 4 ячейки подряд больше нуля. как только он заканчивается идет ноль и тп. Нужно получить общее число недель в курсе.
OFF Не более 4 кв - это год, в году - N недель... Далее  - макс 4 ячейки подряд - это 4 кв. - это N недель...
Форумчане, не дайте свихнуться... ;)
psSovAnna, на примере ОДНОЙ строки в вашем файле покажите что есть и ЧТО ДОЛЖНО получиться при выполнении всех ваших условий.
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
Страницы: 1
Наверх