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

Вход

Регистрация

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

 

= Мир MS Excel/Скрытие и отображение столбцов по алгоритму - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Скрытие и отображение столбцов по алгоритму (Формулы)
Скрытие и отображение столбцов по алгоритму
Asdvin Дата: Понедельник, 16.12.2013, 18:56 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 80% ±

Excel 2007
Скажу честно, поиском не пользовался, но не из лени, а потому что даже не знаю как правильно сформулировать вопрос. Искал в яше. Но ответа не нашёл.

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

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

Выход, который я вижу - не заносить заранее формулы в таблицу и скрывать столбцы с "очень старыми" неделями и "не скоро предстоящими" неделями. Реально для работы необходимы данные за последние 1,5 месяца (т.е. 5 столбцов) и 2-3 предстоящие недели (пустые). Как известно, график по умолчанию не отображает данные в скрытых ячейках. По этому размер графика нормализуется.

Допустим мы скрыли всё ненужное. И вот пришла пора заносить данные за новую неделю. Например сейчас идёт неделя, которая кончится 20.12.103. (в пятницу) и мы начнём заносить данные по ней. Что нужно сделать? Нужно скрыть совсем старую неделю (за 08 ноя), открыть новую неделю (10 янв) и протянуть формулы из недели 13 дек на неделю 20 дек. Таким образом, мы как бы двигаем вправо область с данными на некоей шкале. Оставляя скрытой совсем уж старую информацию и постепенно открывая новые недели. График, построенный на основе этой таблице, естественно движется вслед за данными. Вроде всё хорошо. Но таких данных планируется очень много. Заносить их будет в таблицу не создатель файла. По этому, планируется защитить лист паролем (оставив возможность редактирования только конкретных ячеек) по этому нужно автоматизировать процесс. Сделать кнопку на листе и назначить на неё макрос.

Итак, что должен делать макрос?
1. Скрыть совсем старую неделю
2. Открыть одну новую неделю из будущих (в данный момент они скрыты)
3. протянуть формулы из текущей недели в следующую.

Вроде просто, но тут я въехал в пень. Получается, что макросам пофигу на то, скрыт столбец в данный момент или нет. Например, я записываю макрос, который скрывает столбец "С". Всё работает, но только один раз. Когда столбец "С" скрыт, на его месте оказывается столбец "D", и надо бы скрыть теперь уже столбец "D". Но макросу пофиг он снова пытается скрыть и без того уже скрытый столбец "С". пробовал записывать макросы с нажатой кнопкой "Относительные ссылки", но всё то же самое. Да, теперь он скрывает столбцы не по их названию, а просто как бы считая "Третий столбец слева". Но тот факт, что на месте третьего слева столбца уже оказался четвёртый, и вроде как он теперь является третьим слева и теперь бы его надо скрыть - не вкатывает. Макрос по прежнему пытается скрыть третий слева столбец, который и без того скрыт уже. Но т.к. он в принципе существует (не важно скрыт или не скрыт) он считается третьим слева и капец.

Естественно, с открытием новых недель и протяжкой формул - та же проблема.

Кто виноват и что делать?)))
К сообщению приложен файл: _1__2013.xlsx (39.8 Kb)


Сообщение отредактировал Asdvin - Понедельник, 16.12.2013, 18:58
 
Ответить
СообщениеСкажу честно, поиском не пользовался, но не из лени, а потому что даже не знаю как правильно сформулировать вопрос. Искал в яше. Но ответа не нашёл.

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

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

Выход, который я вижу - не заносить заранее формулы в таблицу и скрывать столбцы с "очень старыми" неделями и "не скоро предстоящими" неделями. Реально для работы необходимы данные за последние 1,5 месяца (т.е. 5 столбцов) и 2-3 предстоящие недели (пустые). Как известно, график по умолчанию не отображает данные в скрытых ячейках. По этому размер графика нормализуется.

Допустим мы скрыли всё ненужное. И вот пришла пора заносить данные за новую неделю. Например сейчас идёт неделя, которая кончится 20.12.103. (в пятницу) и мы начнём заносить данные по ней. Что нужно сделать? Нужно скрыть совсем старую неделю (за 08 ноя), открыть новую неделю (10 янв) и протянуть формулы из недели 13 дек на неделю 20 дек. Таким образом, мы как бы двигаем вправо область с данными на некоей шкале. Оставляя скрытой совсем уж старую информацию и постепенно открывая новые недели. График, построенный на основе этой таблице, естественно движется вслед за данными. Вроде всё хорошо. Но таких данных планируется очень много. Заносить их будет в таблицу не создатель файла. По этому, планируется защитить лист паролем (оставив возможность редактирования только конкретных ячеек) по этому нужно автоматизировать процесс. Сделать кнопку на листе и назначить на неё макрос.

Итак, что должен делать макрос?
1. Скрыть совсем старую неделю
2. Открыть одну новую неделю из будущих (в данный момент они скрыты)
3. протянуть формулы из текущей недели в следующую.

Вроде просто, но тут я въехал в пень. Получается, что макросам пофигу на то, скрыт столбец в данный момент или нет. Например, я записываю макрос, который скрывает столбец "С". Всё работает, но только один раз. Когда столбец "С" скрыт, на его месте оказывается столбец "D", и надо бы скрыть теперь уже столбец "D". Но макросу пофиг он снова пытается скрыть и без того уже скрытый столбец "С". пробовал записывать макросы с нажатой кнопкой "Относительные ссылки", но всё то же самое. Да, теперь он скрывает столбцы не по их названию, а просто как бы считая "Третий столбец слева". Но тот факт, что на месте третьего слева столбца уже оказался четвёртый, и вроде как он теперь является третьим слева и теперь бы его надо скрыть - не вкатывает. Макрос по прежнему пытается скрыть третий слева столбец, который и без того скрыт уже. Но т.к. он в принципе существует (не важно скрыт или не скрыт) он считается третьим слева и капец.

Естественно, с открытием новых недель и протяжкой формул - та же проблема.

Кто виноват и что делать?)))

Автор - Asdvin
Дата добавления - 16.12.2013 в 18:56
_Boroda_ Дата: Понедельник, 16.12.2013, 20:40 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Вариант без макроса.
Можно регулировать количество недель вперед от прошедшей пятницы и количество пятниц на диаграмме
Предваряя вопрос "Как?" - жмите Контрл F3, там именованные диапазоны. Далее, смотрите на источник данных для каждого ряда диаграммы.
К сообщению приложен файл: _1_2013_1.xlsx (44.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВариант без макроса.
Можно регулировать количество недель вперед от прошедшей пятницы и количество пятниц на диаграмме
Предваряя вопрос "Как?" - жмите Контрл F3, там именованные диапазоны. Далее, смотрите на источник данных для каждого ряда диаграммы.

Автор - _Boroda_
Дата добавления - 16.12.2013 в 20:40
Asdvin Дата: Понедельник, 16.12.2013, 21:31 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 80% ±

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


Сообщение отредактировал Asdvin - Понедельник, 16.12.2013, 21:32
 
Ответить
СообщениеСпасибо за предложение. Я не до конца понял тонкости того, как это работает, но общий принцип понятен. Однако он не решает вопроса скрытия ненужных на данный момент самих столбцов с данными, в самой таблице со значениями.

Автор - Asdvin
Дата добавления - 16.12.2013 в 21:31
Asdvin Дата: Понедельник, 16.12.2013, 21:36 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 80% ±

Excel 2007
И кстати, непонятно как протягивать формулы таким способом. По сути, изначально я хотел узнать, как заставить макрос работать только с видимыми ячейками. Т.е., грубо говоря, как объяснить макросу "Скрой мне третий столбец слева, при этом УЖЕ СКРЫТЫЕ не считаются". Вот типа того. Можно ли? Остальное я сам доделаю)))
 
Ответить
СообщениеИ кстати, непонятно как протягивать формулы таким способом. По сути, изначально я хотел узнать, как заставить макрос работать только с видимыми ячейками. Т.е., грубо говоря, как объяснить макросу "Скрой мне третий столбец слева, при этом УЖЕ СКРЫТЫЕ не считаются". Вот типа того. Можно ли? Остальное я сам доделаю)))

Автор - Asdvin
Дата добавления - 16.12.2013 в 21:36
_Boroda_ Дата: Понедельник, 16.12.2013, 21:37 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
он не решает вопроса скрытия ненужных на данный момент самих столбцов с данными, в самой таблице со значениями.

А теперь-то зачем?
Нужно было что? Нужно было, чтобы график был красивым и читаемым.
Если создать график сразу на 60 недель он получается очень длинным и большая его часть просто бессмысленна на данный момент, т.к. данные будут постепенно добавляться в течении годаю Эта одна проблема. Вторая проблема в том, что если заранее занести формулы расчёта в таблицу на основе которой строится график, то следующую неделю (данные за которую ещё просто не внесены) и все последующие недели, график понимает как нулевые значения и тупо всегда падает на ноль.

Выход, который я вижу - не заносить заранее формулы в таблицу и скрывать столбцы с "очень старыми" неделями и "не скоро предстоящими" неделями. Реально для работы необходимы данные за последние 1,5 месяца (т.е. 5 столбцов) и 2-3 предстоящие недели (пустые). Как известно, график по умолчанию не отображает данные в скрытых ячейках. По этому размер графика нормализуется.

График получился даже удобнее, чем Вы хотели (удобнее потому, что его размер настраивается на лету). Так зачем теперь Вы хотите повесить на себя то, что Вы поправить потом (в случае сбоя) не сможете?


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

А теперь-то зачем?
Нужно было что? Нужно было, чтобы график был красивым и читаемым.
Если создать график сразу на 60 недель он получается очень длинным и большая его часть просто бессмысленна на данный момент, т.к. данные будут постепенно добавляться в течении годаю Эта одна проблема. Вторая проблема в том, что если заранее занести формулы расчёта в таблицу на основе которой строится график, то следующую неделю (данные за которую ещё просто не внесены) и все последующие недели, график понимает как нулевые значения и тупо всегда падает на ноль.

Выход, который я вижу - не заносить заранее формулы в таблицу и скрывать столбцы с "очень старыми" неделями и "не скоро предстоящими" неделями. Реально для работы необходимы данные за последние 1,5 месяца (т.е. 5 столбцов) и 2-3 предстоящие недели (пустые). Как известно, график по умолчанию не отображает данные в скрытых ячейках. По этому размер графика нормализуется.

График получился даже удобнее, чем Вы хотели (удобнее потому, что его размер настраивается на лету). Так зачем теперь Вы хотите повесить на себя то, что Вы поправить потом (в случае сбоя) не сможете?

Автор - _Boroda_
Дата добавления - 16.12.2013 в 21:37
RAN Дата: Понедельник, 16.12.2013, 21:45 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub qq()
     For i = 1 To Columns.Count
         If Columns(i).Hidden = False Then
             j = j + 1
             If j = 3 Then
                 Columns(i).Hidden = True
                 Exit Sub
             End If
         End If
     Next
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub qq()
     For i = 1 To Columns.Count
         If Columns(i).Hidden = False Then
             j = j + 1
             If j = 3 Then
                 Columns(i).Hidden = True
                 Exit Sub
             End If
         End If
     Next
End Sub
[/vba]

Автор - RAN
Дата добавления - 16.12.2013 в 21:45
Asdvin Дата: Понедельник, 16.12.2013, 22:19 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 80% ±

Excel 2007
А теперь-то зачем?
Нужно было что? Нужно было, чтобы график был красивым и читаемым.

Нужно было и то и другое. Когда пойдёт 32 неделя года заносить данные в таблицу будет тяжко. Да и (надеемся), что годом всё не ограничится. А когда 75 неделя сбора данных пойдет?))) Мотать страницу вправо, пока колесо на мышке скрипеть не начнёт?))
Sub qq()
For i = 1 To Columns.Count
If Columns(i).Hidden = False Then
j = j + 1
If j = 3 Then
Columns(i).Hidden = True
Exit Sub
End If
End If
Next
End Sub


Уважаемый, вот это именно то, что мне было нужно. Всё чётко работает. Могли бы вы мне написать ещё пример как по той же логике отобразить столбец один из скрытых. Например столбцов всего имеется 30. (естественно в буквенных обозначениях) т.е. столбцы от А до AC, причём скрыты столбцы от 3 до 10 и от 20 до 30. Т.е. в данный момент мы имеем 30 столбцов но видим только A,B,C, K-T, AD-до конца файла. Задача: открыть столбец номер 21 (столбец V) это если считать все столбцы в принципе (скрытые и не скрытые) и задача превращается в "Открыть столбец 14" если считать только те, что выдны на данный момент. (13 мы видим, а тот 14ый, который надо открыть, в данный момент он скрыт и станет 14ым видимым когда откроется)

А так же есть третья задача, которая завершит процесс: "Протянуть" формулы из 16ого в 17ый столбец. Т.е. из столбца Q в столбец R. Или, если перефразировать: нужно протянуть формулы из 8ого в 9ый ВИДИМЫХ столбцов. Вот так правильнее будет сказать. Именно из 8ого видимого в 9ый видимый. А какие они там в реальности по счёту идут - не имеет значения. Хоть трёхсотые.

Естественно, вся эта богодельня должна работать после каждого смещения. Ну, я в стартовом топе описывал в чём проблема. Т.е. вся логика не должна жёстко привязываться к именам столбцов и не должна считать скрытые за столбец.

Я, просто как та собака - понимать понимаю, но сказать не могу. Типа великий бейсик программист))) Как работает код - я понимаю. В приведённом вами примере я вижу логику работы программы, но так как не знаком с синтаксисом и операторами конкретно этого языка макросов, то мне очень нужны примеры, чтоб поправить их под себя. Не было бы вам сложным показать мне примеры написания тех действий которые мне нужны?? А уж в один целый макрос я помучаюсь да сам всё это соберу.


Сообщение отредактировал Asdvin - Понедельник, 16.12.2013, 22:29
 
Ответить
Сообщение
А теперь-то зачем?
Нужно было что? Нужно было, чтобы график был красивым и читаемым.

Нужно было и то и другое. Когда пойдёт 32 неделя года заносить данные в таблицу будет тяжко. Да и (надеемся), что годом всё не ограничится. А когда 75 неделя сбора данных пойдет?))) Мотать страницу вправо, пока колесо на мышке скрипеть не начнёт?))
Sub qq()
For i = 1 To Columns.Count
If Columns(i).Hidden = False Then
j = j + 1
If j = 3 Then
Columns(i).Hidden = True
Exit Sub
End If
End If
Next
End Sub


Уважаемый, вот это именно то, что мне было нужно. Всё чётко работает. Могли бы вы мне написать ещё пример как по той же логике отобразить столбец один из скрытых. Например столбцов всего имеется 30. (естественно в буквенных обозначениях) т.е. столбцы от А до AC, причём скрыты столбцы от 3 до 10 и от 20 до 30. Т.е. в данный момент мы имеем 30 столбцов но видим только A,B,C, K-T, AD-до конца файла. Задача: открыть столбец номер 21 (столбец V) это если считать все столбцы в принципе (скрытые и не скрытые) и задача превращается в "Открыть столбец 14" если считать только те, что выдны на данный момент. (13 мы видим, а тот 14ый, который надо открыть, в данный момент он скрыт и станет 14ым видимым когда откроется)

А так же есть третья задача, которая завершит процесс: "Протянуть" формулы из 16ого в 17ый столбец. Т.е. из столбца Q в столбец R. Или, если перефразировать: нужно протянуть формулы из 8ого в 9ый ВИДИМЫХ столбцов. Вот так правильнее будет сказать. Именно из 8ого видимого в 9ый видимый. А какие они там в реальности по счёту идут - не имеет значения. Хоть трёхсотые.

Естественно, вся эта богодельня должна работать после каждого смещения. Ну, я в стартовом топе описывал в чём проблема. Т.е. вся логика не должна жёстко привязываться к именам столбцов и не должна считать скрытые за столбец.

Я, просто как та собака - понимать понимаю, но сказать не могу. Типа великий бейсик программист))) Как работает код - я понимаю. В приведённом вами примере я вижу логику работы программы, но так как не знаком с синтаксисом и операторами конкретно этого языка макросов, то мне очень нужны примеры, чтоб поправить их под себя. Не было бы вам сложным показать мне примеры написания тех действий которые мне нужны?? А уж в один целый макрос я помучаюсь да сам всё это соберу.

Автор - Asdvin
Дата добавления - 16.12.2013 в 22:19
KuklP Дата: Понедельник, 16.12.2013, 22:53 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
А так же есть третья задача
Вам бы правила почитать. П.4 в частности.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
А так же есть третья задача
Вам бы правила почитать. П.4 в частности.

Автор - KuklP
Дата добавления - 16.12.2013 в 22:53
Asdvin Дата: Понедельник, 16.12.2013, 22:59 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 80% ±

Excel 2007
Вам бы правила почитать. П.4 в частности.


Читал я правила. Ну, если приятнее - давайте обзовём её подзадачей. Ибо она является составной частью общей задачи, которую нужно решить и, подозреваю, что выполняется по общему похожему принципу, с незначительными, чисто техническими, изменениями. К чему создавать 38 тем, если задачи идентичны. Обзываются кратко "Как не считать скрытые столбцы", а задачи и подзадачи приведены только для полее полного понимания ситуации и цели.

[admin]
К чему создавать 38 тем, если задачи идентичны
Давайте создадим одну тему-помойку под названием "Работа в Excel" и будем постить туда все вопросы и ответы по Excel. Ведь все они являются всего лишь подзадачами темы "Работа в Excel"

Да, и если задачи идентичны - то зачем дублировать вопросы? Решения в таком случае тоже идентичны будут. А если нет - значит задачи все же разные

[p.s.]Свои правила будете устанавливать где-нибудь в другом месте, на этом форуме правила уже есть. Либо соблюдайте их, либо не ждите помощи. Тема закрыта, Вам замечание. Пока устное[/p.s.][/admin]
 
Ответить
Сообщение
Вам бы правила почитать. П.4 в частности.


Читал я правила. Ну, если приятнее - давайте обзовём её подзадачей. Ибо она является составной частью общей задачи, которую нужно решить и, подозреваю, что выполняется по общему похожему принципу, с незначительными, чисто техническими, изменениями. К чему создавать 38 тем, если задачи идентичны. Обзываются кратко "Как не считать скрытые столбцы", а задачи и подзадачи приведены только для полее полного понимания ситуации и цели.

[admin]
К чему создавать 38 тем, если задачи идентичны
Давайте создадим одну тему-помойку под названием "Работа в Excel" и будем постить туда все вопросы и ответы по Excel. Ведь все они являются всего лишь подзадачами темы "Работа в Excel"

Да, и если задачи идентичны - то зачем дублировать вопросы? Решения в таком случае тоже идентичны будут. А если нет - значит задачи все же разные

[p.s.]Свои правила будете устанавливать где-нибудь в другом месте, на этом форуме правила уже есть. Либо соблюдайте их, либо не ждите помощи. Тема закрыта, Вам замечание. Пока устное[/p.s.][/admin]

Автор - Asdvin
Дата добавления - 16.12.2013 в 22:59
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Скрытие и отображение столбцов по алгоритму (Формулы)
  • Страница 1 из 1
  • 1
Поиск:

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