До тех пор пока excel

Суммировать до тех пор, пока не выполниться условие

astronom

Дата: Суббота, 21.11.2015, 11:35 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Доброго субботнего утра!

Из данных, что есть: столбец «G» с числами. Столбец «F» показывает какое было число в «G» : отрицательное или положительное.
В колонке J я указал, какие числа должны получиться в итоге.
А теперь, что надо сделать:
Для положительных чисел: суммируем ячейки столбца «G» до тех пор, пока сумма не примет отрицательное значение. В колонку «J» заносится максимальное значение, которое получалось при сложении.
Для отрицательных чисел: суммируем ячейки столбца «G» до тех пор, пока сумма не примет положительное значение. В колонку «J» заносится минимальное значение, которое получалось при сложении.
В колонку «А» я продублировал правила вычислений, чтоб нагляднее было.
Если что не понятно, уточните, я со своей колокольни размышляю. Некоторые вещи, которые мне понятны безусловно, могут вызвать вопросы у других. И наоборот :)

 

Ответить

YouGreed

Дата: Суббота, 21.11.2015, 12:03 |
Сообщение № 2

Группа: Проверенные

Ранг: Ветеран

Сообщений: 589


Репутация:

123

±

Замечаний:
0% ±


Excel 2010

astronom, Не вполне наглядный пример. Можно покрутить формулы.

Код

=НАИМЕНЬШИЙ(($F$2:$F$973=$F$3)*$G$2:$G$973;1)

— для отрицательных

Код

=НАИБОЛЬШИЙ(($F$2:$F$973=$F$2)*$G$2:$G$973;1)

— для положительных

Формулы массивны, вводятся нажатием Ctrl+Shift+Enter одновременно.

Сообщение отредактировал YouGreedСуббота, 21.11.2015, 12:04

 

Ответить

astronom

Дата: Суббота, 21.11.2015, 12:28 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Попробовал так:

Код

=ЕСЛИ(G2>0;НАИБОЛЬШИЙ(($F$2:$F$973=$F$2)*$G$2:$G$973;1);НАИМЕНЬШИЙ(($F$2:$F$973=$F$3)*$G$2:$G$973;1))

Получилось не то. Где то лишние значки «$» ? Я в значках этих полный дуб… :(
Можете объяснить пошагово как работает формула? Без «если», просто вот эту:

Код

=НАИБОЛЬШИЙ(($F$2:$F$973=$F$2)*$G$2:$G$973;1)

Хочу понять что с чем и почему и где))
[moder]Оформляйте формулы тегами (кнопка fx)[/moder]

Сообщение отредактировал PelenaСуббота, 21.11.2015, 14:19

 

Ответить

AlexM

Дата: Суббота, 21.11.2015, 20:03 |
Сообщение № 4

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Кросс
Получилось получить результат, но потребовался дополнительный столбец Е.
Основной части формулы присвоено имя «Формула»

Код

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ(Лист1!$G2;;;СТРОКА(Лист1!A$2:ИНДЕКС(Лист1!A:A;ПОИСКПОЗ(;0^(-1^(Лист1!$G2<0)*СУММЕСЛИ(Лист1!$E2:$E$973;»<=»&Лист1!$E2:$E$973;Лист1!$G2:$G$973)<0);)))))

итоговая формула

Код

=ЕСЛИ(-1^(G2<0)>0;МАКС(Формула);МИН(Формула))

Результат немного отличается, думаю вы допустили ошибочку определения суммы с накоплением.
Какие массивы обрабатывает функция МАКС() и МИН() в каждой ячейке можно так.
Выделить имя формулы «Формула» в строке формул и нажать F9

Добавил второй вариант. Еще один доп. столбец и немного изменена именованная формула. Обработка стала быстрее.
В некоторых ячейках ошибка, так как поиск позиции не находит в массиве сумм отрицательное или положительное значение.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

Сообщение отредактировал AlexMСуббота, 21.11.2015, 21:41

 

Ответить

astronom

Дата: Воскресенье, 22.11.2015, 09:49 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

архив 123_2 поврежден или имеет неизвестный формат…
Залейте без архива пожалуйста, или на облако майл.ру

п.с. пробовал Вашу первую версию. считает немножно неправильно, и очень долго соображает….

 

Ответить

AlexM

Дата: Воскресенье, 22.11.2015, 10:03 |
Сообщение № 6

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

У меня архив открывается без проблем. Выкладываю архив еще раз.
Если есть неправильные результаты, то укажите их.
Во второй строке массив сумм {224:409:158:384:213:478:-14}, поэтому выбирает максимальное 478, а у вас почему-то массив сумм немного отличается
В третьей строке массив сумм {-120:-371:-145:-316:-51:-543:-224:-409:-72:-513:-245:-628:-285:-472:-9:-196:-23:-170:34} минимальное -628, а у вас -629
В пятой строке массив {-25:-196:69}, а у вас -25,-197,68
Разберитесь где неправильно.

К сообщению приложен файл:

1385586.rar
(32.4 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

Сообщение отредактировал AlexMВоскресенье, 22.11.2015, 10:10

 

Ответить

astronom

Дата: Воскресенье, 22.11.2015, 10:16 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Вроде все правильно. Спасибо большое!

У меня таких листов с данными несколько десятков. Как мне применить к ним эту «формулу» ?
Где она «спрятана» ?

По поводу несовпадений: почему то изначальные данные в колонке G такие: например, в G2 стоит 529,000000000002. А в G5 стоит -251,000000000001
Причем это в файле 123. В вашем 123_2 такого нет. С чем это связано не знаю, там должны быть целые числа. Но все это не имеет значения, вияние на конечный результат практически нулевое.

Сообщение отредактировал astronomВоскресенье, 22.11.2015, 10:19

 

Ответить

AlexM

Дата: Воскресенье, 22.11.2015, 10:20 |
Сообщение № 8

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Ctrl+F3 диспетчер имен. Смотрите там
Второй файл быстрее?
В нем дополнительные столбцы H и I
PS. Округление сделал я, не думал что важно такие числа. И в с такими дробями массивы контролировать визуально невозможно.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

Сообщение отредактировал AlexMВоскресенье, 22.11.2015, 10:24

 

Ответить

astronom

Дата: Воскресенье, 22.11.2015, 10:24 |
Сообщение № 9

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Второй гораздо быстрее. Ракета, по сравнению с первым вариантом :)

 

Ответить

AlexM

Дата: Воскресенье, 22.11.2015, 10:28 |
Сообщение № 10

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Если вы не против макросов, то можно сделать функцию пользователя под эту задачу. Эта ракета полетит в тысячи раз быстрее.
По макросам это уже другой вопрос и в другом разделе.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

astronom

Дата: Воскресенье, 22.11.2015, 10:34 |
Сообщение № 11

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Хорошо, буду иметь ввиду. Спасибо.

 

Ответить

astronom

Дата: Воскресенье, 22.11.2015, 11:20 |
Сообщение № 12

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Попробовал подставить на лист с 15000 значений. Одну ячейку считает секунд 20-30. )

 

Ответить

Содержание

  • 1 Оператор цикла «For» в Visual Basic
    • 1.1 Цикл «For … Next»
    • 1.2 Цикл «For Each»
    • 1.3 Оператор прерывания цикла «Exit For»
  • 2 Цикл «Do While» в Visual Basic
  • 3 Цикл «Do Until» в Visual Basic

Пару недель назад передо мной встала проблема разработки электронной таблицы, просчитывающую диапазоны рабочего времени в зависимости от рабочего графика и производственного календаря. С первого взгляда задача нетрудная, но в ходе проектирования я понял, что избежать использования циклов не удастся. Особую специфику здесь придавало условие заказчика, что готовый продукт должен быть именно

Excel

таблицей БЕЗ макросов и дополнительных модулей (функций пользователя).

Стандартный набор функций Excel не поддерживает ничего похожего на циклы, однако выход нашелся – использование циклических ссылок и итераций.

Первый шаг, чтобы начать работать с циклическими ссылками – это разрешить итеративные вычисления в Excel. В версии Microsoft Office XP это делается в разделе меню «Сервис – Параметры»:

как сделать цикл в excel

В открывшемся окне активируем соответствующий флажок:

как сделать цикл в excel

Так же обратите внимание на поле «Предельное число итераций» — оно определяет, сколько раз будет проходить вычисление по всем циклическим ссылкам, если вы сами не поставите ограничение.

!Информация: В Excel 2007 включение итеративных вычислений производится в пункте меню «Файл – Параметры Excel» в разделе «Формулы».

Рассмотрим пример использования итеративных вычислений в виде цикла.

Впишите в ячейку А1 формулу:

Если значение предельного числа итераций равно 100, то результатом вычислений в ячейке А1 будет равно 100. Теперь изменим формулу:

как сделать цикл в excel

Как видите число итераций мы ограничили числом в ячейке А2, а именно 10. Чтобы проиллюстрировать, как происходят итерации, добавим формулу в ячейку B2:

как сделать цикл в excel

Как видите, каждый этап итерации (новое значение А1) добавляется к ячейке B1 до тех пор пока происходят итерации.

!Замечание: Возможно, результат в B2 будет не таким – для того, чтобы исправить это сделайте следующее: после ввода формулы в ячейку B1 перейдите в ячейку A1, установите курсор в поле редактирования формулы и нажмите Enter – произойдет пересчет итераций. Для корректной работы итераций необходимо задать ряд дополнительных условий, ограничивающих их количество и задающее условие сброса текущего значения поля в исходное значение. Пересчет всех ячеек с циклическими ссылками происходит каждый раз при изменении ячеек, от которых они зависят.

!Дополнительные ссылки:

Встречаются ситуации, когда от программы VBA требуется совершить несколько раз подряд один и тот же набор действий (то есть повторить несколько раз один и тот же блок кода). Это может быть сделано при помощи циклов VBA.

К циклам VBA относятся:

  • Цикл For
  • Цикл Do While
  • Цикл Do Until

Далее мы подробно рассмотрим каждый из этих циклов.

Оператор цикла «For» в Visual Basic

Структура оператора цикла For в Visual Basic может быть организована в одной из двух форм: как цикл For … Next или как цикл For Each.

Цикл «For … Next»

Цикл For … Next использует переменную, которая последовательно принимает значения из заданного диапазона. С каждой сменой значения переменной выполняются действия, заключённые в теле цикла. Это легко понять из простого примера:

For i = 1 To 10     Total = Total + iArray(i)  Next i

В этом простом цикле For … Next используется переменная i, которая последовательно принимает значения 1, 2, 3, … 10, и для каждого из этих значений выполняется код VBA, находящийся внутри цикла. Таким образом, данный цикл суммирует элементы массива iArray в переменной Total.

В приведённом выше примере шаг приращения цикла не указан, поэтому для пошагового увеличения переменной i от 1 до 10 по умолчанию используется приращение . Однако, в некоторых случаях требуется использовать другие значения приращения для цикла. Это можно сделать при помощи ключевого слова Step, как показано в следующем простом примере.

For d = 0 To 10 Step 0.1     dTotal = dTotal + d  Next d

Так как в приведённом выше примере задан шаг приращения равный 0.1, то переменная dTotal для каждого повторения цикла принимает значения 0.0, 0.1, 0.2, 0.3, … 9.9, 10.0.

Для определения шага цикла в VBA можно использовать отрицательную величину, например, вот так:

For i = 10 To 1 Step -1     iArray(i) = i  Next i

Здесь шаг приращения равен -1, поэтому переменная i с каждым повторением цикла принимает значения 10, 9, 8, … 1.

Цикл «For Each»

Цикл For Each похож на цикл For … Next, но вместо того, чтобы перебирать последовательность значений для переменной-счётчика, цикл For Each выполняет набор действий для каждого объекта из указанной группы объектов. В следующем примере при помощи цикла For Each выполняется перечисление всех листов в текущей рабочей книге Excel:

Dim wSheet As Worksheet    For Each wSheet in Worksheets     MsgBox "Найден лист: " & wSheet.Name  Next wSheet

Оператор прерывания цикла «Exit For»

Оператор Exit For применяется для прерывания цикла. Как только в коде встречается этот оператор, программа завершает выполнение цикла и переходит к выполнению операторов, находящихся в коде сразу после данного цикла. Это можно использовать, например, для поиска определённого значения в массиве. Для этого при помощи цикла просматривается каждый элемент массива. Как только искомый элемент найден, просматривать остальные нет необходимости – цикл прерывается.

Применение оператора Exit For продемонстрировано в следующем примере. Здесь цикл перебирает 100 записей массива и сравнивает каждую со значением переменной dVal. Если совпадение найдено, то цикл прерывается:

For i = 1 To 100     If dValues(i) = dVal Then        IndexVal = i        Exit For     End If  Next i

Цикл «Do While» в Visual Basic

Цикл Do While выполняет блок кода до тех пор, пока выполняется заданное условие. Далее приведён пример процедуры Sub, в которой при помощи цикла Do While выводятся последовательно числа Фибоначчи не превышающие 1000:

'Процедура Sub выводит числа Фибоначчи, не превышающие 1000  Sub Fibonacci()     Dim i As Integer 'счётчик для обозначения позиции элемента в последовательности     Dim iFib As Integer 'хранит текущее значение последовательности     Dim iFib_Next As Integer 'хранит следующее значение последовательности     Dim iStep As Integer 'хранит размер следующего приращения       'инициализируем переменные i и iFib_Next     i = 1     iFib_Next = 0     'цикл Do While будет выполняться до тех пор, пока значение     'текущего числа Фибоначчи не превысит 1000       Do While iFib_Next < 1000        If i = 1 Then           'особый случай для первого элемента последовательности           iStep = 1           iFib = 0        Else           'сохраняем размер следующего приращения перед тем, как перезаписать           'текущее значение последовательности           iStep = iFib           iFib = iFib_Next        End If          'выводим текущее число Фибоначчи в столбце A активного рабочего листа        'в строке с индексом i        Cells(i, 1).Value = iFib        'вычисляем следующее число Фибоначчи и увеличиваем индекс позиции элемента на 1        iFib_Next = iFib + iStep        i = i + 1     Loop    End Sub

В приведённом примере условие iFib_Next < 1000 проверяется в начале цикла. Поэтому если бы первое значение iFib_Next было бы больше 1000, то цикл бы не выполнялся ни разу.

Другой способ реализовать цикл Do While – поместить условие не в начале, а в конце цикла. В этом случае цикл будет выполнен хотя бы раз, не зависимо от того, выполняется ли условие.

Схематично такой цикл Do While с проверяемым условием в конце будет выглядеть вот так:

Do  ...  Loop While iFib_Next < 1000

Цикл «Do Until» в Visual Basic

Цикл Do Until очень похож на цикл Do While: блок кода в теле цикла выполняется раз за разом до тех пор, пока заданное условие выполняется (результат условного выражения равен True). В следующей процедуре Sub при помощи цикла Do Until извлекаются значения из всех ячеек столбца A рабочего листа до тех пор, пока в столбце не встретится пустая ячейка:

iRow = 1  Do Until IsEmpty(Cells(iRow, 1))     'Значение текущей ячейки сохраняется в массиве dCellValues     dCellValues(iRow) = Cells(iRow, 1).Value     iRow = iRow + 1  Loop

В приведённом выше примере условие IsEmpty(Cells(iRow, 1)) находится в начале конструкции Do Until, следовательно цикл будет выполнен хотя бы один раз, если первая взятая ячейка не пуста.

Однако, как было показано в примерах цикла Do While, в некоторых ситуациях нужно, чтобы цикл был выполнен хотя бы один раз, не зависимо от первоначального результата условного выражения. В таком случае условное выражение нужно поместить в конце цикла, вот так:

Do  ...  Loop Until IsEmpty(Cells(iRow, 1))

Урок подготовлен для Вас командой сайта office-guru.ru
Источник: /> Перевел: Антон Андронов

Правила перепечаткиЕще больше уроков по Microsoft Excel

Оцените качество статьи. Нам важно ваше мнение:

Добрый день!
Неделю пытаюсь разобраться с макросами в Excel — выходит признаюсь честно плохо…
Решение задачи так и не нашла. Надеюсь вы сумеете мне подсказать куда конкретнее направить свою активность.

Задача передо мной стоит такая:

ячейка A1 содержит значение, которое я с помощью формул разбиваю на диапазон ячеек (задействовано 276 ячеек) целыми числами. Но при разбивке образуется дельта округления. Так вот мне необходимо эту дельту целыми числами доразнести в уже заполненные формулами ячейки например по порядку.
Например если дельта = 117, а диапазон 276, то в первые 117 ячеек прибавляем по 1, а остальные не трогаем.

Подскажите, пожалуйста, возможно ли вообще это описать для Excel?

Цикл Do While… Loop в VBA Excel, его синтаксис и описание отдельных компонентов. Примеры использования цикла Do While… Loop.

Цикл Do While… Loop в VBA Excel предназначен для повторения блока операторов пока выполняется заданное условие (возвращается значение True). Синтаксис этого цикла аналогичен синтаксису цикла Do Until… Loop, который повторяется до тех пор, пока условие не выполняется (возвращается значение False).

Синтаксис цикла Do While… Loop существует в двух вариантах, определяющих, когда проверяется условие.


Условие проверяется до выполнения операторов:

Do While condition

    [ statements ]

    [ Exit Do ]

    [ statements ]

Loop


Условие проверяется после выполнения операторов:

Do

    [ statements ]

    [ Exit Do ]

    [ statements ]

Loop While condition


В квадратных скобках указаны необязательные атрибуты цикла Do While… Loop.

Компоненты цикла Do While… Loop

Компонент Описание
condition Обязательный атрибут. Условие выполнения цикла. Выражение, возвращающее значение типа Boolean.
statements Необязательный* атрибут. Операторы вашего кода.
Exit Do Необязательный атрибут. Оператор выхода** из цикла до его окончания.

*Если не использовать в цикле свой код, смысл применения цикла теряется.

**Очень полезный оператор для цикла Do While… Loop, так как при некоторых обстоятельствах он может стать бесконечным. Если такой риск существует, следует предусмотреть возможность выхода из бесконечного цикла VBA с помощью оператора Exit Do.

Примеры циклов Do While… Loop

Простейшие циклы

Цикл Do While… Loop с условием до исполняемых операторов:

Sub test1()

Dim a As Byte

  Do While a < 10

    a = a + 1

  Loop

MsgBox a

End Sub

Цикл Do While… Loop с условием после исполняемых операторов:

Sub test2()

Dim a As Byte

  Do

    a = a + 1

  Loop While a < 10

MsgBox a

End Sub

В обоих случаях окно MsgBox выведет число 10. Когда значение переменной a будет равно 10, проверяемое условие выдаст значение False, и цикл будет остановлен.

Проход по строкам листа

У двух белок дупла расположены напротив друг друга. В каждом дупле по 100 шишек. В свободное время они бросают шишки в дупло напротив, попадают не всегда. Ниже, в таблице, указано количество шишек, брошенных каждой белкой, и сколько их попало в цель.

Дни Игрок Брошено Попало в цель
1 день Белка 1 15 6
1 день Белка 2 12 7
2 день Белка 1 14 8
2 день Белка 2 16 7
3 день Белка 1 20 9
3 день Белка 2 14 6
4 день Белка 1 26 10
4 день Белка 2 13 5
5 день Белка 1 17 4
5 день Белка 2 21 7

Исходя из этих данных необходимо узнать, сколько шишек осталось у Белки 1 в дупле. Для этого необходимо вычесть из 100 шишек количество выброшенных Белкой 1 и прибавить шишки, заброшенные в ее дупло Белкой 2. Вычисления начинаем со второй строки (в первой заголовки) и в условии для цикла Do While… Loop указываем «первая ячейка текущей строки не является пустой». Таблица должна начинаться с первой ячейки рабочего листа «A1», и под ней, как минимум, одна строка должна быть пустой, точнее, первая ячейка этой строки.

Sub test3()

Dim i As Long, n As Long

i = 2

n = 100

  Do While Cells(i, 1) <> «»

    If Cells(i, 2) = «Белка 1» Then

      n = n Cells(i, 3)

    Else

      n = n + Cells(i, 4)

    End If

    i = i + 1

  Loop

MsgBox n

End Sub

Результат, выведенный в информационном сообщении MsgBox, будет равен 40. Вы можете скопировать таблицу на рабочий лист книги Excel и поэкспериментировать с кодом VBA.

Бесконечный цикл и Exit Do

Пример бесконечного цикла:

Sub test4()

Dim a As Byte

  Do While a < 10

  a = a + 1

    If a = 9 Then

      a = 0

    End If

  Loop

End Sub

При запуске этой процедуры цикл Do While… Loop начинает выполняться бесконечно. Мне приходилось останавливать бесконечные циклы VBA в Excel 2000 и Excel 2016. В Excel 2000 помогло сочетание клавиш Ctrl+Break, а в Excel 2016 при закрытии редактора VBA крестиком появляется окно:

Информационное окно «Microsoft Excel не отвечает»

Информационное окно «Microsoft Excel не отвечает»

Ожидать отклика программы нет смысла, поэтому нажимаем «Перезапустить программу» или «Закрыть программу».

Совет: перед запуском процедуры с циклом Do While… Loop, который может стать бесконечным, обязательно сохраните книгу, иначе, при принудительном закрытии редактора VBA ваши изменения будут утеряны. Кроме того, при принудительном закрытии редактора VBA, Excel может отключить макросы. Включите их в окне «Центр управления безопасностью», открыть которое можно по ссылке «Безопасность макросов» на ленте в разделе «Разработчик». Подробнее о включении макросов в разных версиях Excel читайте в статье: Как разрешить выполнение макросов в Excel?.

Пример использования оператора Exit Do:

Sub test5()

Dim a As Byte, n As Long

  Do While a < 10

  a = a + 1

  n = n + 1

    If a = 9 Then

      a = 0

    End If

    If n = 1000 Then

      Exit Do

    End If

  Loop

MsgBox n

End Sub

Когда число итераций цикла дойдет до 1000, он будет завершен, и информационное сообщение MsgBox выведет на экран число повторений цикла Do While… Loop из этого примера.


Как показано на левом снимке экрана, вам нужно повторять значение ячейки, пока новое значение не появится или не будет достигнуто в столбце Excel. В этом случае вам нужно повторять значение A в следующей пустой ячейке до тех пор, пока не будет достигнуто значение B, и повторять значение B до тех пор, пока не будет видно значение C. Как этого добиться? Эта статья вам поможет.

Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью формулы
Повторяйте значение ячейки до тех пор, пока новое значение не будет отображаться или не будет достигнуто с помощью ссылочного значения выше
Повторяйте значение ячейки, пока новое значение не будет видно или достигнуто с помощью Код VBA
Легко повторять значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто всего несколькими щелчками мыши


Содержание

  1. Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью формулы
  2. Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с указанием значения выше
  3. Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью кода VBA
  4. Легко повторять значение ячейки до нового значение отображается или достигается только несколькими щелчками мыши
  5. Демо: легко повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью Kutools for Excel
  6. Статьи по теме:

Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью формулы

Вы можете использовать формулы для повторения значения ячейки до тех пор, пока новое значение отображается в Excel. Пожалуйста, сделайте следующее.

1. В новом столбце выберите пустую ячейку, которая находится рядом с ячейкой (E2), вам нужно повторить ее значение, затем введите формулу = E2 в панель формул и нажмите клавишу Enter. См. Снимок экрана:

2. Выберите следующую ячейку (F3) в столбце справки, введите формулу = IF (E3 = “”, F2, E3) в панель формул, затем нажмите клавишу Enter .

3. Продолжая выбирать ячейку F3, перетащите маркер заполнения вниз, чтобы повторять все значения ячеек, пока не появится новое значение. См. Снимок экрана:


Легко повторять значение ячейки, пока новое значение не будет достигнуто в Excel:

Утилита Заполнить пустые ячейки из Kutools for Excel может помочь вам повторять значение ячейки в списке до тех пор, пока новое значение не появится или не будет достигнуто в Excel, как показано на скриншоте ниже.
Загрузите и попробуйте прямо сейчас! (30-дневная бесплатная пробная версия)


Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с указанием значения выше

Помимо приведенной выше формулы, вы можете сначала выбрать все пустые ячейки, а затем ссылаться на все приведенные выше значения, чтобы заполнить пустые ячейки сочетаниями клавиш.

1. Выберите столбец, в котором необходимо повторить значение ячейки, затем нажмите клавишу F5 , чтобы открыть диалоговое окно Перейти , затем нажмите Special .

2. В диалоговом окне Перейти к специальному выберите параметр Пробелы , а затем нажмите кнопку ОК . См. Снимок экрана:

3. Теперь все пустые ячейки в выбранном столбце выделены, введите знак равенства = , нажмите клавишу со стрелкой вверх один раз, а затем нажмите Ctrl + Нажмите одновременно.

Затем вы увидите, что значение ячейки в выбранном столбце повторяется до тех пор, пока не появится новое значение, как показано на скриншоте ниже:


Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью кода VBA

Следующий код VBA также может помочь вам повторить значение ячейки до тех пор, пока новое значение не появится в определенном столбце Excel.

1. Выберите диапазон столбцов, в котором необходимо повторять значение ячейки, пока не появится новое значение, затем нажмите одновременно клавиши Alt + F11 , чтобы открыть Microsoft Окно Visual Basic для приложений .

2. В окне Microsoft Visual Basic для приложений нажмите Вставить > Модуль . Затем скопируйте и вставьте приведенный ниже код VBA в окно модуля.

Код VBA: повторяйте значение ячейки, пока новое значение не появится в Excel

3. Нажмите клавишу F5 , чтобы запустить код. Затем все пустые ячейки в выбранном диапазоне столбцов немедленно заполняются значением выше.


Легко повторять значение ячейки до нового значение отображается или достигается только несколькими щелчками мыши

В этом разделе представлена ​​служебная программа Заполнить пустые ячейки из Kutools for Excel . С помощью этой утилиты вы можете легко повторять значение ячейки до тех пор, пока новое значение не будет видно с помощью всего нескольких щелчков мышью.

Перед применением Kutools for Excel , пожалуйста, сначала загрузите и установите его .

1. Выберите диапазон столбцов, в котором необходимо повторить значение ячейки, затем нажмите Kutools > Вставить > Заполнить пустые ячейки . См. Снимок экрана:

2. В диалоговом окне Заполнить пустые ячейки выберите На основе значений в разделе Заполнить , выберите Вниз в разделе Параметры и, наконец, нажмите кнопку ОК . См. Снимок экрана:

Затем все пустые ячейки заполняются указанным выше значения ячеек сразу же, как показано на скриншоте ниже.

Если хотите чтобы получить 30-дневную бесплатную пробную версию этой утилиты, нажмите, чтобы загрузить ее , а затем перейдите к применению операции в соответствии с вышеуказанными шагами.


Демо: легко повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью Kutools for Excel


Статьи по теме :

  • Как повторить символ n раз в ячейке в Excel?
  • Как повторить строки поверх каждой распечатки, кроме последней страницы в Excel?

In this article, we are going to see look into the Do Until loop in Excel VBA using a suitable example.

Implementation :

In the Microsoft Excel tabs, select the Developer Tab. Initially, the Developer Tab may not be available. 

The Developer Tab can be enabled easily by a two-step process :

  • Right-click on any of the existing tabs in the top of the Excel window.
  • Now select Customize the Ribbon from the pop-down menu.

  • In the Excel Options Box, check the box Developer to enable it and click on OK.

  • Now, the Developer Tab is visible.

Now click on the Visual Basic option in the Developer tab and make a new module to write the program using the Select Case statement.

Developer  -> Visual Basic -> Tools -> Macros
  • Now create a Macro and give any suitable name.

  • This will open the Editor window where can write the code.

Do Until Loop

In Do Until loop the condition is checked. The statements inside the loop are executed when the condition becomes FALSE. When the condition becomes TRUE, the loop terminates. In the case of a Do Until we can write the condition either in the beginning or at the end. There are two possible syntaxes in the case of Do Until Loop. The keyword Do is used to perform the tasks until certain criteria are met. 

The syntax is :

Do Until condition/expression
    Statement 1
    Statement 2
    Statement 3
    ...
    Statement n
Loop

An alternate syntax is :

Do
    Statement 1
    Statement 2
    Statement 3
    ...
    Statement n
Loop Until Condition/expression

Flow Diagram :

Example : Print the age of all the employees in an organization whose age falls between thirty to forty years.

Code :

Sub Do_Until_Age_Emp()
'Initialize and declare the age of the employee
Dim Age As Integer: Age = 30
'Condition to print the age of employees between 30 to 40 years
Do Until Age > 38
    Age = Age + 1
    MsgBox ("Age:" & Age)
Loop
End Sub

In the above code, the condition is Do Until Age > 38. It will execute the age of employees from 31 to 39 years because when the age becomes 39 the condition becomes TRUE and the loop terminates. In the Excel message box we get the ages of the employees between 30 to 40 years.

Output :

Age : 31

Age : 32

Age : 33

Age : 34

Age : 35

Age : 36

Age : 37

Age : 38

Age : 39

Similarly, the above code can also be written as :

Sub Do_Until_Age_Emp()
'Initialize and declare the age of the employee
Dim Age As Integer: Age = 30
'Start of Do Until Loop
Do
    Age = Age + 1
    MsgBox ("Age:" & Age)
Loop Until Age > 38        'Condition to print the age of employees between 30 to 40 years
End Sub

Понравилась статья? Поделить с друзьями:
  • До какого знака округляет excel
  • До встречи с тобой word скачать
  • Дни рождения шаблон для word
  • Дни рождения сотрудников таблица excel
  • Дни рождения в календаре excel