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

Вход

Регистрация

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

 

= Мир MS Excel/Циклические ссылки и нестирающиеся формулы - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Циклические ссылки и нестирающиеся формулы (Формулы/Formulas)
Циклические ссылки и нестирающиеся формулы
AlexM Дата: Суббота, 24.01.2015, 19:56 | Сообщение № 21
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4505
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
Range в переводе с английского Диапазон
Range("A1") - диапазон из одной ячейки
Range("A1:A3") - диапазон из трех ячеек
Range("A1:A3,D1:D5") - два диапазона по несколько ячеек
В макросе Range используется для указания адреса ячейки с которой выполняются действия.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеRange в переводе с английского Диапазон
Range("A1") - диапазон из одной ячейки
Range("A1:A3") - диапазон из трех ячеек
Range("A1:A3,D1:D5") - два диапазона по несколько ячеек
В макросе Range используется для указания адреса ячейки с которой выполняются действия.

Автор - AlexM
Дата добавления - 24.01.2015 в 19:56
kontrabasss Дата: Суббота, 24.01.2015, 20:02 | Сообщение № 22
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
AlexM, еще раз спасибо. Просто очень хочется понять что же я такое сделал, что все заработало. )))
Или почти все...
 
Ответить
СообщениеAlexM, еще раз спасибо. Просто очень хочется понять что же я такое сделал, что все заработало. )))
Или почти все...

Автор - kontrabasss
Дата добавления - 24.01.2015 в 20:02
kontrabasss Дата: Понедельник, 26.01.2015, 12:27 | Сообщение № 23
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
И еще один момент вдруг понял...
Допустим у меня есть все те же три столбца - A,B,C.
Если, например, мне известны А и B я их ввожу и C рассчитывается.
Но если мне известны B и С, то происходит так: я ввожу B нажимаю Enter - все пересчиталось, потом ввожу C и рассчитывается B. Но мне в данном случае надо, чтобы А рассчиталось.
Т.е. excel устроен таким образом, что вводиться одно значение и происходит перерасчет.
А мне получается надо ввести 2 значения и только потом произвести перерасчет.
Вот и возник вопрос - возможно ли такое организовать в Excel?
 
Ответить
СообщениеИ еще один момент вдруг понял...
Допустим у меня есть все те же три столбца - A,B,C.
Если, например, мне известны А и B я их ввожу и C рассчитывается.
Но если мне известны B и С, то происходит так: я ввожу B нажимаю Enter - все пересчиталось, потом ввожу C и рассчитывается B. Но мне в данном случае надо, чтобы А рассчиталось.
Т.е. excel устроен таким образом, что вводиться одно значение и происходит перерасчет.
А мне получается надо ввести 2 значения и только потом произвести перерасчет.
Вот и возник вопрос - возможно ли такое организовать в Excel?

Автор - kontrabasss
Дата добавления - 26.01.2015 в 12:27
JayBhagavan Дата: Понедельник, 26.01.2015, 12:32 | Сообщение № 24
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация: 27 ±
Замечаний: 0% ±

Excel 2010
kontrabasss, как понял, макросом на событие листа: Worksheet_Change


Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов
 
Ответить
Сообщениеkontrabasss, как понял, макросом на событие листа: Worksheet_Change

Автор - JayBhagavan
Дата добавления - 26.01.2015 в 12:32
kontrabasss Дата: Понедельник, 26.01.2015, 12:35 | Сообщение № 25
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
JayBhagavan, а если не сложно чуть-чуть поподробней... просто я очень далек от этой темы... )))
 
Ответить
СообщениеJayBhagavan, а если не сложно чуть-чуть поподробней... просто я очень далек от этой темы... )))

Автор - kontrabasss
Дата добавления - 26.01.2015 в 12:35
kontrabasss Дата: Понедельник, 26.01.2015, 12:39 | Сообщение № 26
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
У меня сейчас все выглядит вот так:

[vba]
Код
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Range("BF3") = Range("BF1") - Range("AR12")
Application.EnableEvents = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address(0, 0) = "BF1" Then Range("BF3") = Target.Value - Range("AR12")
If Target.Address(0, 0) = "BF3" Then Range("BF1") = Target.Value + Range("AR12")
If Target.Address(0, 0) = "AR12" Then Range("BF3") = Range("BF1") - Target.Value
Application.EnableEvents = True
End Sub
[/vba]
 
Ответить
СообщениеУ меня сейчас все выглядит вот так:

[vba]
Код
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Range("BF3") = Range("BF1") - Range("AR12")
Application.EnableEvents = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address(0, 0) = "BF1" Then Range("BF3") = Target.Value - Range("AR12")
If Target.Address(0, 0) = "BF3" Then Range("BF1") = Target.Value + Range("AR12")
If Target.Address(0, 0) = "AR12" Then Range("BF3") = Range("BF1") - Target.Value
Application.EnableEvents = True
End Sub
[/vba]

Автор - kontrabasss
Дата добавления - 26.01.2015 в 12:39
JayBhagavan Дата: Понедельник, 26.01.2015, 14:03 | Сообщение № 27
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация: 27 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:C]) Is Nothing And Target.Count = 1 Then
     Application.EnableEvents = False
     cl = Target.Column
     rw = Target.Row
     If cl <> 1 And Len(Cells(rw, 2).Value) And Len(Cells(rw, 3).Value) Then _
         Cells(rw, 1).Value = Cells(rw, 2).Value + Cells(rw, 3).Value
     If cl <> 2 And Len(Cells(rw, 1).Value) And Len(Cells(rw, 3).Value) Then _
         Cells(rw, 2).Value = Cells(rw, 1).Value - Cells(rw, 3).Value
     If cl <> 3 And Len(Cells(rw, 1).Value) And Len(Cells(rw, 2).Value) Then _
         Cells(rw, 3).Value = Cells(rw, 1).Value - Cells(rw, 2).Value
     Application.EnableEvents = True
End If
End Sub
[/vba]


Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:C]) Is Nothing And Target.Count = 1 Then
     Application.EnableEvents = False
     cl = Target.Column
     rw = Target.Row
     If cl <> 1 And Len(Cells(rw, 2).Value) And Len(Cells(rw, 3).Value) Then _
         Cells(rw, 1).Value = Cells(rw, 2).Value + Cells(rw, 3).Value
     If cl <> 2 And Len(Cells(rw, 1).Value) And Len(Cells(rw, 3).Value) Then _
         Cells(rw, 2).Value = Cells(rw, 1).Value - Cells(rw, 3).Value
     If cl <> 3 And Len(Cells(rw, 1).Value) And Len(Cells(rw, 2).Value) Then _
         Cells(rw, 3).Value = Cells(rw, 1).Value - Cells(rw, 2).Value
     Application.EnableEvents = True
End If
End Sub
[/vba]

Автор - JayBhagavan
Дата добавления - 26.01.2015 в 14:03
kontrabasss Дата: Понедельник, 26.01.2015, 15:35 | Сообщение № 28
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Наверно, я как-то неправильно формулирую свою мысль, но по-моему не то...
Есть 3 значения A,B,C.
все 3 значения между собой взаимосвязаны.
Т.е. А=B+C
Изначально известны только 2 из них. Причем любые 2.
Допустим известны B и C.
Ввожу B, нажимаю Enter - A и C пересчитались.
Ввожу C, нажимаю Enter - A пересчиталось.
Все верно, все работает.
Другой вариант - известны A и B.
Ввожу A - все пересчиталось
Ввожу B и... перерасчитывается A... а в этот раз нужно чтобы C, так как А и B известны...
Bопрос в том как ввести сначала 2 значения, а потом Excel произвел перерасчет.
Или дать понять excel-ю какой из двух оставшихся столбцов (или ячеек - не важно) перерасчитывать.
 
Ответить
СообщениеНаверно, я как-то неправильно формулирую свою мысль, но по-моему не то...
Есть 3 значения A,B,C.
все 3 значения между собой взаимосвязаны.
Т.е. А=B+C
Изначально известны только 2 из них. Причем любые 2.
Допустим известны B и C.
Ввожу B, нажимаю Enter - A и C пересчитались.
Ввожу C, нажимаю Enter - A пересчиталось.
Все верно, все работает.
Другой вариант - известны A и B.
Ввожу A - все пересчиталось
Ввожу B и... перерасчитывается A... а в этот раз нужно чтобы C, так как А и B известны...
Bопрос в том как ввести сначала 2 значения, а потом Excel произвел перерасчет.
Или дать понять excel-ю какой из двух оставшихся столбцов (или ячеек - не важно) перерасчитывать.

Автор - kontrabasss
Дата добавления - 26.01.2015 в 15:35
JayBhagavan Дата: Понедельник, 26.01.2015, 15:43 | Сообщение № 29
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация: 27 ±
Замечаний: 0% ±

Excel 2010
kontrabasss, макрос скорректировал. Пробуйте.


Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов
 
Ответить
Сообщениеkontrabasss, макрос скорректировал. Пробуйте.

Автор - JayBhagavan
Дата добавления - 26.01.2015 в 15:43
kontrabasss Дата: Понедельник, 26.01.2015, 16:00 | Сообщение № 30
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
При известных A и B не считает C.
При известных B и C все работает.
При известных A и C работает на 50% (только если сначала ввести C) %)
 
Ответить
СообщениеПри известных A и B не считает C.
При известных B и C все работает.
При известных A и C работает на 50% (только если сначала ввести C) %)

Автор - kontrabasss
Дата добавления - 26.01.2015 в 16:00
kontrabasss Дата: Понедельник, 26.01.2015, 16:22 | Сообщение № 31
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вот моя задача.
Известно всегда 2 любых значения из 3.
Необходимо чтобы третье рассчитывалось само.
К сообщению приложен файл: 1752974.xlsx (60.3 Kb)
 
Ответить
СообщениеВот моя задача.
Известно всегда 2 любых значения из 3.
Необходимо чтобы третье рассчитывалось само.

Автор - kontrabasss
Дата добавления - 26.01.2015 в 16:22
kontrabasss Дата: Вторник, 27.01.2015, 17:21 | Сообщение № 32
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Моя задача не имеет решения?
Или надо новую тему создать?
 
Ответить
СообщениеМоя задача не имеет решения?
Или надо новую тему создать?

Автор - kontrabasss
Дата добавления - 27.01.2015 в 17:21
AlexM Дата: Вторник, 27.01.2015, 17:28 | Сообщение № 33
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4505
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
Из трех значений вводим первое известное.
Какое из двух оставшихся тоже известно?
Допустим вводим А, указываем что В известно. Пересчитываем С
Допустим вводим А, указываем что С известно. Пересчитываем В
Если не указать, то непонятно что пересчитывать.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеИз трех значений вводим первое известное.
Какое из двух оставшихся тоже известно?
Допустим вводим А, указываем что В известно. Пересчитываем С
Допустим вводим А, указываем что С известно. Пересчитываем В
Если не указать, то непонятно что пересчитывать.

Автор - AlexM
Дата добавления - 27.01.2015 в 17:28
kontrabasss Дата: Среда, 28.01.2015, 13:28 | Сообщение № 34
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вот так понятно?
Известны всегда разные 2 значения из трех.
И это надо все организовать в одной таблице.
К сообщению приложен файл: 9378944.xlsx (59.4 Kb)
 
Ответить
СообщениеВот так понятно?
Известны всегда разные 2 значения из трех.
И это надо все организовать в одной таблице.

Автор - kontrabasss
Дата добавления - 28.01.2015 в 13:28
vikttur Дата: Среда, 28.01.2015, 16:57 | Сообщение № 35
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Ловите. Код в модуле листа.
Галкой указать параметр, который вычисляется. В строку 3 указанного столбца вписывается формула.
[vba]
Код
Option Explicit

' переключение галки (отметка изменяемого параметра)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      With Target
          If .Cells.Count > 1 Then Exit Sub
          If Not Application.Intersect(Range("A1:C1"), Target) Is Nothing Then
              Application.EnableEvents = False
              Cells(1, 1).Resize(1, 3).Value = ""
              Application.EnableEvents = True
              Cells(1, .Column).Value = "ь"
          End If
      End With
End Sub

' подстановка формулы
Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Cells.Count > 1 Then Exit Sub
      If Not Application.Intersect(Range("A1:C1,A3:C3"), Target) Is Nothing Then
          Application.EnableEvents = False
          Cells(3, 1).Resize(1, 3).Value = Cells(3, 1).Resize(1, 3).Value

          Select Case "ь"
              Case Cells(1, 1).Value
                  Cells(3, 1).FormulaLocal = "=B3*TAN(РАДИАНЫ(C3))"
              Case Cells(1, 2).Value
                  Cells(3, 2).FormulaLocal = "=A3/TAN(РАДИАНЫ(C3))"
              Case Cells(1, 3).Value
                  Cells(3, 3).FormulaLocal = "=ATAN(A3/B3)*180/3,14"
          End Select
            
          Application.EnableEvents = True
      End If
End Sub
[/vba]
К сообщению приложен файл: 4376027.xlsm (66.5 Kb)


Сообщение отредактировал vikttur - Среда, 28.01.2015, 17:05
 
Ответить
СообщениеЛовите. Код в модуле листа.
Галкой указать параметр, который вычисляется. В строку 3 указанного столбца вписывается формула.
[vba]
Код
Option Explicit

' переключение галки (отметка изменяемого параметра)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      With Target
          If .Cells.Count > 1 Then Exit Sub
          If Not Application.Intersect(Range("A1:C1"), Target) Is Nothing Then
              Application.EnableEvents = False
              Cells(1, 1).Resize(1, 3).Value = ""
              Application.EnableEvents = True
              Cells(1, .Column).Value = "ь"
          End If
      End With
End Sub

' подстановка формулы
Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Cells.Count > 1 Then Exit Sub
      If Not Application.Intersect(Range("A1:C1,A3:C3"), Target) Is Nothing Then
          Application.EnableEvents = False
          Cells(3, 1).Resize(1, 3).Value = Cells(3, 1).Resize(1, 3).Value

          Select Case "ь"
              Case Cells(1, 1).Value
                  Cells(3, 1).FormulaLocal = "=B3*TAN(РАДИАНЫ(C3))"
              Case Cells(1, 2).Value
                  Cells(3, 2).FormulaLocal = "=A3/TAN(РАДИАНЫ(C3))"
              Case Cells(1, 3).Value
                  Cells(3, 3).FormulaLocal = "=ATAN(A3/B3)*180/3,14"
          End Select
            
          Application.EnableEvents = True
      End If
End Sub
[/vba]

Автор - vikttur
Дата добавления - 28.01.2015 в 16:57
kontrabasss Дата: Среда, 28.01.2015, 17:33 | Сообщение № 36
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
vikttur, большое спасибо за помощь.
Все вроде так, как надо!
 
Ответить
Сообщениеvikttur, большое спасибо за помощь.
Все вроде так, как надо!

Автор - kontrabasss
Дата добавления - 28.01.2015 в 17:33
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Циклические ссылки и нестирающиеся формулы (Формулы/Formulas)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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