Запомнить значение в ячейке excel

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

Сохранить предыдущее значение ячейки с кодом VBA в Excel


Сохранить предыдущее значение ячейки с кодом VBA в Excel

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

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

2. В дебюте Microsoft Visual Basic для приложений Скопируйте приведенный ниже код VBA в окно кода.

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

Код VBA: сохранить предыдущее значение ячейки в другую ячейку столбца

Dim xRg As Range
Dim xChangeRg As Range
Dim xDependRg As Range
Dim xDic As New Dictionary
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim I As Long
    Dim xCell As Range
    Dim xDCell As Range
    Dim xHeader As String
    Dim xCommText As String
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    xHeader = "Previous value :"
    x = xDic.Keys
    For I = 0 To UBound(xDic.Keys)
        Set xCell = Range(xDic.Keys(I))
        Set xDCell = Cells(xCell.Row, 7)
        xDCell.Value = ""
        xDCell.Value = xDic.Items(I)
    Next
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim I, J As Long
    Dim xRgArea As Range
    On Error GoTo Label1
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    Set xDependRg = Target.Dependents
    If xDependRg Is Nothing Then GoTo Label1
    If Not xDependRg Is Nothing Then
        Set xDependRg = Intersect(xDependRg, Range("C:C"))
    End If
Label1:
    Set xRg = Intersect(Target, Range("C:C"))
    If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = Union(xRg, xDependRg)
    ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = xDependRg
    ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then
        Set xChangeRg = xRg
    Else
        Application.EnableEvents = True
        Exit Sub
    End If
    xDic.RemoveAll
    For I = 1 To xChangeRg.Areas.Count
        Set xRgArea = xChangeRg.Areas(I)
        For J = 1 To xRgArea.Count
            xDic.Add xRgArea(J).Address, xRgArea(J).Formula
        Next
    Next
    Set xChangeRg = Nothing
    Set xRg = Nothing
    Set xDependRg = Nothing
    Application.EnableEvents = True
End Sub

Чтобы сохранить предыдущее значение ячейки в комментарии, примените приведенный ниже код VBA.

Код VBA: сохранить предыдущее значение ячейки в комментарии

Dim xRg As Range
Dim xChangeRg As Range
Dim xDependRg As Range
Dim xDic As New Dictionary
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim I As Long
    Dim xCell As Range
    Dim xHeader As String
    Dim xCommText As String
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    xHeader = "Previous value :"
    For I = 0 To UBound(xDic.Keys)
        Set xCell = Range(xDic.Keys(I))
        If Not xCell.Comment Is Nothing Then xCell.Comment.Delete
        With xCell
            .AddComment
            .Comment.Visible = False
            .Comment.Text xHeader & vbCrLf & xDic.Items(I)
        End With
    Next
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim I, J As Long
    Dim xRgArea As Range
    On Error GoTo Label1
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    Set xDependRg = Target.Dependents
    If xDependRg Is Nothing Then GoTo Label1
    If Not xDependRg Is Nothing Then
        Set xDependRg = Intersect(xDependRg, Range("C:C"))
    End If
Label1:
    Set xRg = Intersect(Target, Range("C:C"))
    If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = Union(xRg, xDependRg)
    ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = xDependRg
    ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then
        Set xChangeRg = xRg
    Else
        Application.EnableEvents = True
        Exit Sub
    End If
    xDic.RemoveAll
    For I = 1 To xChangeRg.Areas.Count
        Set xRgArea = xChangeRg.Areas(I)
        For J = 1 To xRgArea.Count
            xDic.Add xRgArea(J).Address, xRgArea(J).Text
        Next
    Next
    Set xChangeRg = Nothing
    Set xRg = Nothing
    Set xDependRg = Nothing
    Application.EnableEvents = True
End Sub

Внимание: В коде цифра 7 указывает столбец G, в который вы сохраните предыдущую ячейку, а C: C — столбец, в котором вы сохраните предыдущее значение ячейки. Пожалуйста, измените их в соответствии с вашими потребностями.

3. Нажмите Tools
> Рекомендации для открытия Ссылки — VBAProject диалоговое окно, проверьте Среда выполнения сценариев Microsoft поле и, наконец, щелкните OK кнопка. Смотрите скриншот:

4. нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно.

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

Сохраните предыдущие значения ячеек в других ячейках:

Сохраните предыдущие значения ячеек в комментариях:


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (20)


Оценок пока нет. Оцените первым!

 

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

 

Есть ли в Excel функция правило или ещё что-то, что позволило бы скопировать из А1 в ячейку A2 число и оставило бы его там неизменным до того момента пока следующее число в ячейке А1(здесь значения меняются) опять не стало удовлетворять условию.

 

Sh_Alex

Пользователь

Сообщений: 732
Регистрация: 01.01.1970

Это вопрос “vikttur”, он большой любитель итераций.  
Но вместе с тем.    
Устанавливаете «галку» в Сервис_Параметры_вычисления_итерации, после чего пишете в ячейке В1 формулу =ЕСЛИ(А1>0;А1;В1). После чего, при положительных значениях в А1, в ячейке В1 будет отображаться ее значение, при отрицательных В1 значения не изменит.    
С уважением, Александр.

 

Punker

Пользователь

Сообщений: 429
Регистрация: 01.01.1970

Так ведь формула в ячейке не может ссылаться на результат этой же ячейки. Циклическая ссылка.

 

Punker

Пользователь

Сообщений: 429
Регистрация: 01.01.1970

А прошу прощенья, с установленной галкой действительно работает.

 

Спасибо Большое, очень признателен :-).

 

Юркин

Гость

#7

06.09.2010 00:23:21

Очень благодарю Александра, мне тоже помогло!  
Спасибо

Skip to content

Как полностью или частично зафиксировать ячейку в формуле

При написании формулы Excel знак $ в ссылке на ячейку сбивает с толку многих пользователей. Но объяснение очень простое: это всего лишь способ ее зафиксировать. Знак доллара в данном случае служит только одной цели — он указывает, следует ли изменять ссылку при копировании. И это короткое руководство предоставляет полную информацию о том, какими способами можно закрепить адрес ячейки, чтобы он не менялся при копировании формулы.

Если вы создаете формулу только для одной клетки вашей таблицы Excel, то проблема как зафиксировать ячейку вас не волнует. А вот если её нужно копировать или перемещать по таблице, то здесь-то и скрываются подводные камни. Чтобы не сломать расчеты, некоторые ячейки следует зафиксировать в формулах, чтобы их адреса уже не менялись.

Как упоминалось ранее, относительные ссылки на ячейки являются основными по умолчанию для любой формулы, созданной в Excel. Но их главная особенность — изменение при копировании и перемещении. Во многих же случаях необходимо зафиксировать адрес ячейки в формуле, чтобы не потерять эту ссылку при изменении таблицы. Ниже мы рассмотрим следующие способы:

  • Как зафиксировать ячейку вручную.
  • Использование функциональной клавиши.
  • Выборочная фиксация по строке или столбцу.
  • Закрепите адрес ячейки при помощи имени.

Чтобы предотвратить изменение ссылок на ячейку, строку или столбец,  используют абсолютную адресацию , которая отличается тем, что перед координатой строки или столбца ставится знак доллара $.

Поясним на простом примере.

=A1*B1

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

=C3*D3

На 2 позиции изменилась буква столбца и на 2 единицы – номер строки.

Если в ячейке A1 у нас записана информация, которую нам нужно использовать во многих клетках нашей таблицы (например, курс доллара, размер скидки и т.п.), то желательно зафиксировать ее, чтобы ссылка на ячейку A1 никогда не «сломалась»:

=$A$1*B1

В результате, если мы повторим предыдущую операцию, то получим в результате формулу

=$A$1*D3

Ссылка на A1 теперь не относительная, а абсолютная. Более подробно об относительных и абсолютных ссылках вы можете прочитать в этой статье на нашем блоге.

В этом и состоит решение проблемы фиксации ячейки — нужно превратить ссылку в абсолютную.

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

Как вручную зафиксировать ячейку в формуле.

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

В ячейке D2 подсчитаем сумму скидки:

=B2*F2

Записывать подобный расчет для каждого товара — хлопотно и нерационально. Хочется скопировать его из C2 вниз по столбцу. Но при этом ссылка на F2 не должна измениться. Иначе наши расчеты окажутся неверными.

Поэтому ссылку на ячейку F2 в нашем расчёте нужно каким-то образом зафиксировать, чтобы предотвратить ее изменение. Для этого мы при помощи знаков $ превратим ее из относительной в абсолютную.

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

Далее при помощи курсора и клавиатуры вставляем в нужные места знак $ и нажимаем Enter. Получаем:

=B2*$F$2

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

Фиксируем ячейку при помощи функциональной клавиши.

Вновь открываем ячейку для редактирования и устанавливаем курсор на координаты нужной нам ячейки.

Нажимаем функциональную клавишу F4 для переключения вида ссылки.

Неоднократно нажимая F4, вы будете переключать ссылки в следующем порядке:

Для того, чтобы зафиксировать ссылку на ячейку, достаточно нажать F4 всего один раз.

Думаю, это несколько удобнее, чем вводить знак доллара вручную.

Частичная фиксация ячейки по строке или по столбцу.

Часто случается, что необходимо зафиксировать только строку или столбец в адресе ячейки. Для этого используются смешанные  ссылки.

Вы можете использовать два вида смешанных ссылок:

  • Строка фиксируется, а столбец изменяется при копировании.
  • Столбец блокируется, а строка изменяется при копировании.

Смешанная ссылка содержит одну относительную и одну абсолютную координату, например $A1 или A$1. Проще говоря, знак доллара используется только единожды.

Получить такую ссылку вы можете любым из описанных выше способов. Либо вручную выбираете место и устанавливаете знак $, либо нажимаете F4 не один, а два или три раза. Вы это видите на рисунке чуть выше.

В результате мы имеем следующее:

В таблице ниже показано, как может быть закреплена ссылка на ячейку.

Зафиксированная ячейка Что происходит при копировании или перемещении Клавиши на клавиатуре
$A$1 Столбец и строка не меняются. Нажмите F4.
A$1 Строка не меняется. Дважды нажмите F4.
$A1 Столбец не изменяется. Трижды нажмите F4.

Рассмотрим пример, когда нужно закрепить только одну координату: либо столбец, либо строку. И все это в одной формуле.

Предположим, нужно рассчитать цены продажи при разных уровнях наценки. Для этого нужно умножить колонку с ценами (столбец В) на 3 возможных значения наценки (записаны в C2, D2 и E2). Вводим выражение для расчёта в C3, а затем копируем его сначала вправо по строке, а затем вниз:

=$B3*(1+C$2)

Так вы можете использовать силу смешанной ссылки для расчета всех возможных цен с помощью всего одной формулы.

В первом множителе мы зафиксировали в координатах ячейки адрес столбца. Поэтому при копировании вправо по строке адрес $B3 не изменится: ведь строка по-прежнему третья, а буква столбца у нас зафиксирована и меняться не может.

А вот во втором множителе знак доллара мы поставили перед номером строки. Поэтому при копировании вправо координаты столбца изменятся и вместо C$2 мы получим D$2. В результате в D3 у нас получится выражение:

=$B3*(1+D$2)

А когда будем копировать вниз по столбцу, всё будет наоборот: $B3 изменится на $B4, $B5 и т.д. А вот D$2 не изменится, так как «заморожена» строка. В результате в С4 получим:

=$B4*(1+C$2)

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

И если ваши наценки вдруг изменятся, просто поменяйте числа в C2:E2, и проблема пересчёта будет решена почти мгновенно.

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

Как зафиксировать ячейку, дав ей имя.

Отдельную ячейку или целый диапазон ячеек в Excel также можно определить по имени. Для этого вы просто выбираете нужную ячейку, вводите желаемое имя в поле Имя и нажимаете клавишу Enter.

Вернёмся к нашему примеру со скидками. Давайте попробуем ячейке F2 присвоить собственное имя, чтобы затем использовать его в расчетах.

Установите курсор в F2, а затем присвойте этому адресу имя, как это показано на рисунке выше. При этом можно использовать только буквы, цифры и нижнее подчёркивание, которым можно заменить пробел. Знаки препинания и служебные символы не допускаются. Не будем  мудрствовать и назовём его «скидка».

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

Таким образом, ячейку F2 мы ранее фиксировали при помощи абсолютной ссылки и знака $ —

=B2*$F$2

а теперь то же самое делаем при помощи её имени «скидка»:

=B2*скидка

Ячейка так же надёжно зафиксирована, а формула же при этом становится более понятной и читаемой.

Эксель понимает, что если в формуле встречается имя «скидка», то вместо него нужно использовать содержимое ячейки F2.

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

Как удалить сразу несколько гиперссылок В этой короткой статье я покажу вам, как можно быстро удалить сразу все нежелательные гиперссылки с рабочего листа Excel и предотвратить их появление в будущем. Решение работает во всех версиях Excel,…
Как использовать функцию ГИПЕРССЫЛКА В статье объясняются основы функции ГИПЕРССЫЛКА в Excel и приводятся несколько советов и примеров формул для ее наиболее эффективного использования. Существует множество способов создать гиперссылку в Excel. Чтобы сделать ссылку на…
Гиперссылка в Excel: как сделать, изменить, удалить В статье разъясняется, как сделать гиперссылку в Excel, используя 3 разных метода. Вы узнаете, как вставлять, изменять и удалять гиперссылки на рабочих листах, а также исправлять неработающие ссылки. Гиперссылки широко используются…
Как использовать функцию ДВССЫЛ – примеры формул В этой статье объясняется синтаксис функции ДВССЫЛ, основные способы ее использования и приводится ряд примеров формул, демонстрирующих использование ДВССЫЛ в Excel. В Microsoft Excel существует множество функций, некоторые из которых…
Как сделать диаграмму Ганта Думаю, каждый пользователь Excel знает, что такое диаграмма и как ее создать. Однако один вид графиков остается достаточно сложным для многих — это диаграмма Ганта.  В этом кратком руководстве я постараюсь показать…
Как сделать автозаполнение в Excel В этой статье рассматривается функция автозаполнения Excel. Вы узнаете, как заполнять ряды чисел, дат и других данных, создавать и использовать настраиваемые списки в Excel. Эта статья также позволяет вам убедиться, что вы…
Быстрое удаление пустых столбцов в Excel В этом руководстве вы узнаете, как можно легко удалить пустые столбцы в Excel с помощью макроса, формулы и даже простым нажатием кнопки. Как бы банально это ни звучало, удаление пустых…

запоминание значения ячеек

игорь

Дата: Четверг, 27.09.2012, 13:04 |
Сообщение № 1

помогите пожалуйста. суть — есть ячейка например A1, в которой будут меняться значения от 1 до 90. так же есть 90 столбцов (B,C,D,….) на 300 строк (300 значений). если я записываю в а1 значение 1 то появляются значения в столбце B, если в а1 записать 2, то появляются значения в столбце C, а в столбце B естественно исчезают. и т.д. так вот, можно ли сделать так, чтобы все значения в столбцах B,C,D,E …оставались при изменении значении в ячейке а1. спасибо.

 

Ответить

KuklP

Дата: Четверг, 27.09.2012, 13:26 |
Сообщение № 2

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

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

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


2003-2010

В модуль листа:
[vba]

Code

Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address <> «$A$1» Then Exit Sub
     If IsNumeric([a1]) Then
         If [a1] > 1 And [a1] <= 255 Then Cells(1, [a1]) = [a1]
     End If
End Sub

[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

Gustav

Дата: Четверг, 27.09.2012, 13:31 |
Сообщение № 3

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

Ранг: Старожил

Сообщений: 2398


Репутация:

986

±

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


начинал с Excel 4.0, видел 2.1

If [a1] > 1 And [a1] <= 255 Then Cells(1, [a1]+1) = [a1]


МОИ: Ник, Tip box: 41001663842605

 

Ответить

Alex_ST

Дата: Четверг, 27.09.2012, 13:42 |
Сообщение № 4

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

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

Сообщений: 3176


Репутация:

604

±

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


2003

Вообще-то более невнятно поставленных вопросов я видел мало biggrin

Quote (игорь)

если я записываю в а1 значение 1 то появляются значения в столбце B, если в а1 записать 2, то появляются значения в столбце C, а в столбце B естественно исчезают.

Откуда появляются и куда исчезают?
А что делается со значениями из остальных 299 строк?
Пока я чесал извилины biggrin и догадывался о том, что скорее всего нужно просто прятать столбцы, не указанные в А1, Сергей решил, основываясь на задании, что нужно просто значения из А1 копировать в ячейки 1-й строки указанного в А1 столбца (только, наверное, +1, чтобы при А1=1 копировалось в В1)
Честно говоря, я думаю, что не этого Вы хотели, но уж как спросили, такой ответ и получили.



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

игорь

Дата: Четверг, 27.09.2012, 13:58 |
Сообщение № 5

не работает, возможно вы меня не так поняли. если значение в а1 = 1 то в столбце B записываются определенные значения исходя из формулы, если значение в а1 уже равняется 2 то в столбце С записываются другие определенные значения исходя из формулы, а в столбце B прошлые значения исчезают, так мне надо чтобы они не исчезали а сохранялись, и так далее.

если а1=1 работаем со столбцом B;
если а1=2 работаем со столбцом C, значения в столбце B должны остаться такими же как были при а1=1;
если а1=3 работаем со столбцом D, значения в столбце B должны остатся такими же как были при а1= 1, значения в столбце C должны остатся такими же как были при а1= 2; и так далее. надеюсь сейчас стало понятно, спасибо заранее если кто поможет..

 

Ответить

Паттттт

Дата: Четверг, 27.09.2012, 14:05 |
Сообщение № 6

Группа: Заблокированные

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

Сообщений: 43

Quote (игорь)

стало понятно, спасибо заранее если кто поможет.. не работает, возможно вы меня не так поняли. если значение в а1 = 1 то в столбце B записываются определенные значения исходя из формулы, если значение в а1 уже равняется 2 то в столбце С записываются другие определенные значения исходя из формулы, а в столбце B прошлые значения исчезают, так мне надо чтобы они не исчезали а сохранялись, и так далее.

если а1=1 работаем со столбцом B;
если а1=2 работаем со столбцом C, значения в столбце B должны остаться такими же как были при а1=1;
если а1=3 работаем со столбцом D, значения в столбце B должны остатся такими же как были при а1= 1, значения в столбце C должны остатся такими же как были при а1= 2; и так далее. надеюсь сейчас стало понятно, спасибо заранее если кто поможет..игорь

Файл выложи на файлообменник, и ссылку напиши тут.

 

Ответить

игорь

Дата: Четверг, 27.09.2012, 14:15 |
Сообщение № 7

http://rghost.ru/40600998
пример с 29 значениями для 5 столбцов. меняйте значения в а1 с 1 до 5

 

Ответить

Pelena

Дата: Четверг, 27.09.2012, 14:47 |
Сообщение № 8

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Quote (Паттттт)

Файл выложи на файлообменник

Это вредный совет. Не у всех есть возможность, а главное желание качать с файлообменников

игорь, Вы быстрей получите ответ, если потратите две минуты на регистрацию и выложите файл здесь


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

xander

Дата: Четверг, 27.09.2012, 14:56 |
Сообщение № 9

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

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

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


зарегился и прикрепил

меняйте значения в а1 с 1 до 5,..чтоб было понятно суть задачи, читайте мой посты выше(игорь)

Сообщение отредактировал xanderЧетверг, 27.09.2012, 14:58

 

Ответить

_Boroda_

Дата: Четверг, 27.09.2012, 15:27 |
Сообщение № 10

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

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


2003; 2007; 2010; 2013 RUS

Code

=ЕСЛИ(И($A$1>=СТОЛБЕЦ()-1;A2>=45);»###»;0)

так нужно?


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Паттттт

Дата: Четверг, 27.09.2012, 15:29 |
Сообщение № 11

Группа: Заблокированные

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

Сообщений: 43

Quote (_Boroda_)

так нужно? Code=ЕСЛИ(И($A$1>=СТОЛБЕЦ()-1;A2>=45);»###»;0)
так нужно?_Boroda_

Нет, Вы не поняли. Всё-равно при изменении значения ячейки А1 значения столбца В меняются. А надо, — чтобы не менялись, т.е., если я поставил А1-3, то значения в столбце В при А1=2 должны сохраняться. А сейчас в зависимости от значения ячейки А1 меняются значения столбца В
Т.е. нужно, чтобы, если А1=1, действовала только формула в толбце В, если А1=2, действовала только формула в столбце С, а в столбце В формула не запускалась. и остались результаты её работы при А1=1, соотвественно при А1=3 работала только формула в столбце D, а формулы в столбцах В и С не запускались, и остались в столбце В значения при А1=1, в столбце С значения при А1-2

Сообщение отредактировал ПатттттЧетверг, 27.09.2012, 15:41

 

Ответить

xander

Дата: Четверг, 27.09.2012, 15:43 |
Сообщение № 12

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

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

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


Quote (Паттттт)

Нет, Вы не поняли. Всё-равно при изменении значения ячейки А1 значения столбца В меняются. А надо, — чтобы не менялись, т.е., если я поставил А1-3, то значения в столбце В при А1=2 должны сохраняться. А сейчас в зависимости от значения ячейки А1 меняются значения столбца В
Т.е. нужно, чтобы, если А1=1, действовала только формула в толбце В, если А1=2, действовала только формула в столбце С, а в столбце В формула не запускалась. и остались результаты её работы при А1=1, соотвественно при А1=3 работала только формула в столбце D, а формулы в столбцах В и С не запускались, и остались в столбце В значения при А1=1, в столбце С значения при А1-2

всё правильно) именно так и надо реализовать, хотя бы для этого примера из 5 столбцов.

 

Ответить

xander

Дата: Четверг, 27.09.2012, 16:05 |
Сообщение № 13

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

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

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


ребята, решил проблему без создания какого-либо макроса, возможно муторно но хоть как. пример прикреплен

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

8911363.xls
(24.5 Kb)

 

Ответить

vikttur

Дата: Четверг, 27.09.2012, 18:01 |
Сообщение № 14

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

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

Сообщений: 2941

Но ведь циклические ссылки. Это не есть хорошо. Я бы сказал — это плохо.

 

Ответить

Паттттт

Дата: Четверг, 27.09.2012, 18:09 |
Сообщение № 15

Группа: Заблокированные

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

Сообщений: 43

Quote (vikttur)

Но ведь циклические ссылки. Это не есть хорошо. Я бы сказал — это плохо. Но ведь циклические ссылки. Это не есть хорошо. Я бы сказал — это плохо.vikttur

Приведите, пожалуйста, свой вариант.

 

Ответить

vikttur

Дата: Четверг, 27.09.2012, 23:25 |
Сообщение № 16

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

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

Сообщений: 2941

Один мой вариант уже озвучен обитателями и старожилами — использование VBA.
Второй вариант — без использования макросов, с включенными итеративными вычислениями (автор то ли забыл разрешить итерации, то ли не знал об этом). Но этот инструмент может не только помочь, но и навредить:
— можно пропустить нежелательную циклическую ссылку;
— галочка разрешения итераций может сама (не совсем сама, но «втихаря») появиться или исчезнуть. Например, открыты два документа: один с итерациями, второй без них. Закрываем книгу без итераций. Что мы имеем? Во второй итеративные вычисления тоже отключились. Вывод: применять итеративные вычисления нужно умело и осторожно;
если разрешено применение макросов, лучше нагрузить этой работой VBA.

 

Ответить

altarasov

Дата: Вторник, 28.04.2020, 22:23 |
Сообщение № 17

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

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

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


Excel 2019

Добрый вечер!

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

Если значение столбца А не растет ,а значение столбца В растет в восходящем порядке, то столбцу С присваивается значение -1. Иначе = 0

Макрос должен просуммировать все значения -1 накопленным итогом в пределах неизменного значения для диапазона А.

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

 

Ответить

_Boroda_

Дата: Вторник, 28.04.2020, 22:38 |
Сообщение № 18

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

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


2003; 2007; 2010; 2013 RUS

— Прочитайте Правила форума
— Создайте свою тему согласно п.5q Правил форума
Если возмездность для этой задачи, то тему создавайте в ветке «Фриланс». Если эта задача так, типа пробная, но их есть у Вас еще, то эту задачу в ветке VBA
Эта тема закрыта


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

@Shelbie1288 

Here are two possible solutions that you could use in brief. The first is for the current cell. Even if several cells are selected, only the current cell is converted:

Sub RngFormelZuWert ()
Dim c As Range
For Each c In Selection
c.Value = c.Value
Next c
End Sub

Yes, you can also do without the word Value, because in this case it is the default property. But better safe than sorry, and this is how it will work 10 years from now.

The second possibility would be that all cells in a marked area should be «treated» in this way. Then this code leads to the goal:

Sub RngFormelZuWert ()
Dim c As Range
For Each c In Selection
c.Value = c.Value
Next c
End Sub

You can see that this is hardly more code than in the first example.
Is for everyone who would like to have it short and sweet:

Sub Sel2Val ()
Selection.Value = Selection.Value
End Sub

I hope that I was able to help you further, or to provide a solution.

I would be happy to know if I could help.

Nikolino

I know I don’t know anything (Socrates)

* Kindly Mark and Vote this reply if it helps please, as it will be beneficial to more Community members reading here.

Понравилась статья? Поделить с друзьями:
  • Заполняемые шаблоны в word
  • Заполняемые поля в документах word
  • Заполняем документы в microsoft word при помощи python
  • Заполнить ячейки чисел в excel
  • Заполнить ячейки ниже в excel