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

Вход

Регистрация

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

 

= Мир MS Excel/Сбой в формуле при добавлении строки в умную таблицу - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Сбой в формуле при добавлении строки в умную таблицу
neonar Дата: Пятница, 28.12.2018, 13:10 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте!
Возникла небольшая проблема по поводу добавления строки выше существующей в умную таблицу (добавление новой строки происходит с помощью кнопки) - относительные ссылки начинают сбоить для вычисления формулы.
(см. приложенный файл). Количество груш в текущей строке (например, строка 3) вычисляется как сумма предыдущего числа груш (строка 2) + текущее количество яблок (строка 3)
Но если вставить выше 3 строки с помощью кнопки ДОБАВИТЬ СТРОКУ ВЫШЕ новую строку, то этот механизм (в теперь уже в 4 строке) после добавления начинает сбоить -
формула считает неправильно кол-во груш в 4 строке - относительная ссылка предыдущего числа груш не переезжает в добавленную строку. Как это можно поправить?
Заранее благодарю.
К сообщению приложен файл: 5014937.xlsm (56.6 Kb)
 
Ответить
СообщениеЗдравствуйте!
Возникла небольшая проблема по поводу добавления строки выше существующей в умную таблицу (добавление новой строки происходит с помощью кнопки) - относительные ссылки начинают сбоить для вычисления формулы.
(см. приложенный файл). Количество груш в текущей строке (например, строка 3) вычисляется как сумма предыдущего числа груш (строка 2) + текущее количество яблок (строка 3)
Но если вставить выше 3 строки с помощью кнопки ДОБАВИТЬ СТРОКУ ВЫШЕ новую строку, то этот механизм (в теперь уже в 4 строке) после добавления начинает сбоить -
формула считает неправильно кол-во груш в 4 строке - относительная ссылка предыдущего числа груш не переезжает в добавленную строку. Как это можно поправить?
Заранее благодарю.

Автор - neonar
Дата добавления - 28.12.2018 в 13:10
Pelena Дата: Пятница, 28.12.2018, 13:39 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Попробуйте использовать немного другую формулу
[vba]
Код
=СУММ(Таблица3[[#Заголовки];[Кол-во яблок]]:[@[Кол-во яблок]])
[/vba]
К сообщению приложен файл: 6210515.xlsm (55.3 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Попробуйте использовать немного другую формулу
[vba]
Код
=СУММ(Таблица3[[#Заголовки];[Кол-во яблок]]:[@[Кол-во яблок]])
[/vba]

Автор - Pelena
Дата добавления - 28.12.2018 в 13:39
neonar Дата: Пятница, 28.12.2018, 14:06 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Pelena, спасибо! помогло! а то уже сам намучался, нужно было применить другую формулу, спасибо!
 
Ответить
СообщениеPelena, спасибо! помогло! а то уже сам намучался, нужно было применить другую формулу, спасибо!

Автор - neonar
Дата добавления - 28.12.2018 в 14:06
StoTisteg Дата: Пятница, 28.12.2018, 14:24 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Вот да, кстати. Ошибку-то там udf вызывает, пока я её правил, Елена нашла способ проще :)
Ну да и мои труды не пропали, вычистил Вам лишний код и убрал запрос удаления заведомо пустой строки.
К сообщению приложен файл: 1931401.xlsm (56.2 Kb)


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеВот да, кстати. Ошибку-то там udf вызывает, пока я её правил, Елена нашла способ проще :)
Ну да и мои труды не пропали, вычистил Вам лишний код и убрал запрос удаления заведомо пустой строки.

Автор - StoTisteg
Дата добавления - 28.12.2018 в 14:24
neonar Дата: Пятница, 28.12.2018, 14:32 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
StoTisteg спасибо за ваши труды!

Действительно Pelena отработала как по ТРИЗу как учил Альтшуллер упросила вычисление.
Ну может она не из ТРИЗа просто совпадение :)
 
Ответить
СообщениеStoTisteg спасибо за ваши труды!

Действительно Pelena отработала как по ТРИЗу как учил Альтшуллер упросила вычисление.
Ну может она не из ТРИЗа просто совпадение :)

Автор - neonar
Дата добавления - 28.12.2018 в 14:32
neonar Дата: Пятница, 08.02.2019, 13:09 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
StoTisteg, ваш способ заинтересовал, сейчас требуется вычислять значение по другой формуле -(см. файл ячейка H5)
Но блин, во вставленной строке при вашем коде формула правильно вычисляется, но в строках которые ниже нее сбой не устраняется -
относительные ссылки не перескакивают. Это уже не UDF. Попробовал вручную вставить строку в EXCEL, та же ерунда что и при использовании
макроса.
К сообщению приложен файл: 1702859.xlsm (54.9 Kb)
 
Ответить
СообщениеStoTisteg, ваш способ заинтересовал, сейчас требуется вычислять значение по другой формуле -(см. файл ячейка H5)
Но блин, во вставленной строке при вашем коде формула правильно вычисляется, но в строках которые ниже нее сбой не устраняется -
относительные ссылки не перескакивают. Это уже не UDF. Попробовал вручную вставить строку в EXCEL, та же ерунда что и при использовании
макроса.

Автор - neonar
Дата добавления - 08.02.2019 в 13:09
neonar Дата: Суббота, 09.02.2019, 16:28 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 54
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Решил так: создал функцию, имитирующую ссылку на ячейку, для того чтобы получать значение из верхней строки.Умнее ни чего не смог придумать:
Public Function СТРОКАУТ()
With Application.Caller
СТРОКАУТ = .Row - .ListObject.HeaderRowRange.Row
End With
End Function
Public Function ПредыдущееЗначение(СмещениеВверхДоНужнойСтроки As Integer, НомерСтолбца As Integer)
With Application.Caller
ПредыдущееЗначение = .ListObject.DataBodyRange(СТРОКАУТ() - СмещениеВверхДоНужнойСтроки, НомерСтолбца)
End With
End Function
 
Ответить
СообщениеРешил так: создал функцию, имитирующую ссылку на ячейку, для того чтобы получать значение из верхней строки.Умнее ни чего не смог придумать:
Public Function СТРОКАУТ()
With Application.Caller
СТРОКАУТ = .Row - .ListObject.HeaderRowRange.Row
End With
End Function
Public Function ПредыдущееЗначение(СмещениеВверхДоНужнойСтроки As Integer, НомерСтолбца As Integer)
With Application.Caller
ПредыдущееЗначение = .ListObject.DataBodyRange(СТРОКАУТ() - СмещениеВверхДоНужнойСтроки, НомерСтолбца)
End With
End Function

Автор - neonar
Дата добавления - 09.02.2019 в 16:28
  • Страница 1 из 1
  • 1
Поиск:

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