Інформація по темі "" | Публікації по тегу
21.01.13
11790 0
Друкувати
Обране

Сортировка по цвету в MS Excel 2003

Приветствую всех сотрудников «Б & К»! В своей работе я использую программу MS Excel 2003. В связи с этим у меня вопрос. Подскажите, можно ли в этой программе отсортировать таблицу не по значению, а по формату ячеек? Например, отсортировать данные так, чтобы сгруппировать вначале все строки, отмеченные красным цветом, потом — синим и т. д.? Думаю, что такая задача будет интересна многим читателям. Мне, например, такой возможности в MS Excel очень не хватает.




 

Забегая вперед скажу, что среди стандартных возможностей MS Excel 2003 сортировка по цвету не предусмотрена. Тем не менее, задача эта выполнима. И мы сейчас в этом убедимся. Но вначале пару слов о том, что имеется в виду и для чего это нужно.

С желанием отсортировать данные по цветам я столкнулся приблизительно в 2000 — 2001 году, работая заместителем главного бухгалтера одной крупной компании. Характер задач, которые мне приходилось решать практически ежедневно, был связан с достаточно нетривиальной обработкой баз данных. Причем базы эти были немаленькие… Понятное дело, что в процессе работы с данными я делал пометки. Проблемные моменты выделял одним цветом, внесенные изменения — другим и т. д. В какой-то момент передо мной неизбежно вставала одна и та же задача: как в отформатированной таблице выделить записи синего цвета? Или собрать вместе все изменения, которые я пометил желтым? Более того. Подобная задача возникала так часто, что мы с главбухом умудрились состряпать письмо в группу разработки Microsoft с предложением дополнить Excel такой удобной возможностью! Понятное дело, что реакции на это телодвижение не последовало. Но в один прекрасный момент все стало на свои места. Оказалось, что для решения проблемы нужна самая малость — создать пользовательскую функцию размером буквально в три строки. И сейчас я предлагаю посмотреть, как это сделать.

Для примера воспользуемся базой данных, фрагмент которой показан на рис. 1. В этой базе собраны сведения о кассовых операциях за сентябрь 2012 года. В исходной базе шесть полей: «Дата» — дата регистрации хозяйственной операции; «СчД», «СчК» — счет дебета и кредита поводки; «Д», «К» — сумма по дебету и кредиту; «Контрагент» — название контрагента. Отдельные записи в базе выделены цветом. Например, группа операций, где фигурирует сотрудник «Ильченко И.Е.», отмечена желтым фоном. Записи о сотруднике «Рудь Н.И.» выделены зеленым и т. д. Теперь наша задача — упорядочить таблицу, используя в качестве признака сортировки цвет заливки. В результате получится, что записи о каждом сотруднике будут собраны в один блок, анализировать их будет намного проще.

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

1. Открываем рабочую книгу MS Excel. Вызываем меню «Сервис → Макрос → Редактор Visual Basic» (в некоторых версиях MS Office можно воспользоваться комбинацией «Alt+F11»). Откроется окно редактора «Visual Basic for application», изображенное на рис. 2.

2. В этом окне вызываем меню «Insert → Module» (вставить модуль). Откроется область для ввода текста программы.

3. Печатаем текст модуля, который выглядит так:

Public Function ColorCeil(Cell As Range)

ColorCeil = Cell.Interior.ColorIndex

End Function

4. Закрываем окно «Visual Basic», возвращаемся в рабочую книгу Excel с базой данных (рис. 1).

Функция готова, называется она «ColorCeil». У функции единственный параметр — адрес ячейки в рабочей книге. Результат работы функции — это число, которое представляет собой код цвета заливки для указанной ячейки. Теперь можно приступить к редактированию таблицы, чтобы подготовить ее для сортировки. Делаем так:

1. Становимся в свободную колонку на рабочем листе. В базе на рис. 1 я выбрал столбец «G».

2. В ячейку «G1» печатаем заголовок колонки (на рис. 1 это текст «Пр»).

3. Переходим на ячейку «G2».

4. Вызываем меню «Вставка → Функция…». Откроется окно Мастера функций, изображенное на рис. 3.

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

6. Из этого списка выбираем «ColorCeil». Откроется окно для ввода параметров функции (рис. 4).

7. Оставаясь в области для ввода параметров, щелкаем на ячейке «A2», — мы будем сортировать строки, используя цвет заливки ячеек в первой колонке таблицы.

8. В окне настройки параметров нажимаем «ОК».

9. Копируем формулу из ячейки «G2» вниз на всю высоту таблицы. В результате колонка «G» будет заполнена числовыми значениями, каждое из которых характеризует цвет фона в первой колонке соответствующей строки таблицы.

10. Выделяем базу данных.

11. Вызываем меню «Данные → Сортировка…». Откроется окно настройки параметров, как на рис. 5.

12. Щелкаем на значке выпадающего списка «Сортировать по». Из предложенных вариантов выбираем «Пр».

13. Устанавливаем переключатель направления сортировки (на рис. 5 он имеет значение «по возрастанию»).

14. В окне настройки параметров сортировки нажимаем «ОК». Excel отсортирует базу данных по значениям в колонке «Пр», как показано на рис. 6. Иными словами, он отсортирует записи с учетом цвета заливки, который указан для ячеек в первой колонке исходной базы данных.

Важно! Excel не считает изменение цвета редактированием ячейки и поэтому не обновляет значения на рабочем листе. Как следствие, после изменения цвета заливки результат функции «ColorCeil» автоматически обновляться не будет. Это можно проделать вручную, воспользовавшись комбинацией «Ctrl+Alt+F9». Однако на результат сортировки такая ситуация не влияет — в данном случае обновление функции Excel делаем своевременно.

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

В такой ситуации можно применить простой прием — добавить в исходную базу рабочую колонку с номерами строк. После этого никакие преобразования данных нам будут не страшны. Чтобы восстановить первоначальный порядок следования записей, достаточно отсортировать базу по рабочей колонке. А подробнее это выглядит так:

1. Открываем таблицу, изображенную на рис. 1.

2. Становимся на свободную колонку. Пусть это будет столбец «H» (напомню, что в колонке «G» у нас находится функция для определения цвета заливки).

3. В ячейку «H1» вводим название колонки, например, «Раб».

4. В ячейку «H2» вводим число «1». В ячейку «H3» вводим значение «2».

5. Выделяем на рабочем листе блок «H2:H3».

6. Ставим указатель мышки на прямоугольный маркер в правом нижнем углу выделенного блока.

7. Когда курсор изменит свою форму, удерживаем левую кнопку мышки и растягиваем блок на всю высоту таблицы. Excel проанализирует выделенные ячейки и заполнит колонку «H» элементами арифметической прогрессии с шагом «1». В результате этих действий в ячейки колонки «H» будут записаны значения «1», «2», «3» и т. д. Это и есть номера записей в исходной базе данных.

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

И последнее. На первый взгляд, заполнить колонку «Раб» можно при помощи формул. Например, ввести в «H2» значение «1», в «H3» написать формулу «=H2+1» и скопировать ее вниз до конца таблицы. На самом деле это не так. При сортировке базы данных будет нарушена адресация ячеек. А в результате вместо значений формулы вернут сообщение об ошибке. Поэтому заполнение рабочей колонки копированием (в режиме прогрессии) в данном случае принципиально.

 

На сегодня все. Удачной работы! Жду ваших вопросов, замечаний и предложений на bk@id.factor.ua, nictomkar@rambler.ru или на форуме редакции www.bk.factor.ua/forum.

env_icon Отримуйте новини поштою!

Ми будемо надсилати вам найсвіжіші матеріали кожного тижня

Для цього вкажіть своє ім'я та електронну скриньку

Помітили помилку? Виділіть її та натисніть Ctrl+Enter, щоб повідомити нас про це



коментарі
(0)
Яка вдача - ви можете стати першим, хто прокоментує цей матеріал.
Залишити коментар:
pw-image
Читайте сайт за ціною чашки кави
Платне користування buhgalter.com.ua передбачає:
  • доступ до новин, статей, довідників
  • безлімітні завантаження бланків
  • відсутність реклами.
Передплатники «Бюджетної бухгалтерії», «Оплата праці» та користувачі «FIT-Бюджет» отримують безкоштовний доступ до порталу бонусом до передплати.
Передплата подовжується автоматично щомісяця, але відмовитися можна у будь-який момент. Я погоджуюсь з користувацькими умовами
30
грн/
місяць
Вже передплатили? Увійти
Передплата подовжується автоматично щомісяця, але відмовитися можна у будь-який момент. Я погоджуюсь з користувацькими умовами
ic-acc-pay
×

 

Договір публічної оферти

Угода

про умови використання інформаційних ресурсів сайту

Ця Угода укладена між ТОВ «НВП «ФАКТОР» (далі - Компанія) і будь-яким Користувачем (далі загально названі - Сторони) веб-сайту (-ів) buhgalter.com.ua і / або budget.factor.ua, далі іменуються - Сайт.

Загальні положення

Наведені нижче умови є електронною формою документа, що визначає порядок використання, а саме, надання Користувачеві доступу до інформаційних ресурсів через Сайт.

Ця угода (Договір) носить характер публічної оферти, тобто є еквівалентом "усної угоди" і відповідно до чинного законодавства України має належну юридичну силу.

Сайт є об'єктом авторського права і як складного твору, а також "компіляції даних" ("бази даних") охороняється на території України, відповідно до Закону України "Про авторське право і суміжні права".

Всі авторські майнові права на Сайт належать Компанії. Позначення «buhgalter», «Factor» є знаком для товарів і послуг (торговою маркою) і не може використовуватися Користувачем без отримання відповідної ліцензії.

Компанія докладає всіх зусиль щодо забезпечення достовірності і актуальності інформації, представленої на Сайті. Однак Компанія не бере на себе фінансової та іншої відповідальності за результати застосування цієї інформації.

Підписка - повний доступ до всіх матеріалів, розміщених на Сайті. Підписка надається за певну плату на певний строк відповідно до умов відповідного тарифу Підписки.

Автоподовження підписки - сервіс автоматичного продовження підписки.

 

 

1. Прийняття Угоди

 

1.1. Для того, щоб отримати право доступу до інформаційних ресурсів Сайту, Користувачеві необхідно спочатку висловити свою згоду з цією угодою. Користувач не має санкціонованого доступу до інформаційних ресурсів Сайту, якщо він не прийняв або не згоден з умовами цієї угоди.

1.2 Згідно з умовами Договору Компанія надає Користувачам Передплату на платній основі з метою перегляду користувачами окремих матеріалів, розміщених на Сайті. Категорії платної інформації визначаються Товариством самостійно.

1.3. За згодою Користувача з умовами цієї угоди, Користувачеві надається доступ до інформаційних ресурсів Сайту. Інформаційні ресурси надаються «як є» і не припускають наступних доопрацювань.

1.4. Користувач має право припинити користуватися Сайтом в будь-який момент, без спеціального повідомлення Компанії про припинення користування Сайтом.

1.5. Для отримання доступу до ресурсів від Користувача може знадобитися надання інформації про себе (наприклад, відомості про особу, відомості про юридичну особу та інші контактні дані) з метою продовження користування Користувачем послугами Компанії.

1.6. Беручи до уваги безперервне впровадження нових розробок, Користувач визнає і погоджується з тим, що Компанія має право на власний розсуд припинити (тимчасово або остаточно) надання доступу до ресурсів Сайту (або будь-яких окремих функцій Сайту) всім користувачам взагалі або Користувачеві зокрема, без попереднього повідомлення.

1.7. Компанія на постійній основі впроваджує нові розробки для того, щоб надавати найкращі можливі послуги своїм користувачам. Користувач визнає і погоджується з тим, що форма і характер послуг (дизайн сайту, обсяг наданої інформації, тематика і ін.) можуть час від часу змінюватися без попереднього повідомлення Користувача.

 

 

2. Відповідальність сторін

 

2.1. Матеріали Сайту видаються без будь-яких гарантій, неявних або інших. Компанія не несе відповідальність за повноту і точність інформації, що міститься в матеріалах сайту, відповідність її вимогам Користувача.

2.2. Всі ризики, що виникають при використанні матеріалів (ресурсів) Сайту, несе Користувач. Компанія ні за яких умов не несе відповідальності за будь-які понесені Користувачем збитки, у чому б вони не виражалися, в тому числі, в разі якщо компанія була повідомлена про можливість заподіяння збитків.

2.3. Ризик настання негативних наслідків в результаті використання рекомендацій, думок і тверджень, що містяться на Сайті, в повному обсязі несе Користувач. Компанія не гарантує і не підтверджує точність і достовірність, рекомендацій, думок і тверджень, що містяться на Сайті.

2.4. Компанія не несе ніякої відповідальності за будь-які помилки, неточності, втрати часу, порушення в роботі обладнання і ліній комунікацій, проникнення комп'ютерних вірусів, втрати і зміни даних, виникнення дефектів в роботі програм. які виникли, незалежно від причин, в результаті використання Сайту.

2.5. У разі здійснення Користувачем дій, передбачених ст. 50 Закону України «Про авторське право і суміжні права» (порушення авторського права і суміжних прав), Компанія залишає за собою право, без попереднього повідомлення Користувача, за своїм вибором здійснювати дії щодо захисту немайнових і майнових авторських прав та суміжних прав в порядку, встановленому адміністративним, цивільним і кримінальним законодавством.

 

3. Порядок і умови оформлення Передплати

 

3.1 Для оформлення Передплати Користувачеві необхідно:

3.1.1 Авторизуватись або зареєструватися на сайті buhgalter.com.ua шляхом заповнення всіх необхідних полів реєстраційної форми

3.1.2 Уважно ознайомитися з умовами договору і прийняти його,

3.1.3 Ввести необхідні для оплати дані, якщо того вимагає Платіжна система; підтвердити оплату і оплатити.

3.2 Оплата доступу до сайту buhgalter.com.ua проводиться Користувачем на умовах 100% передплати.

3.3 Компанія попереджає користувачів, а Користувачі розуміють і погоджуються з тим, що Платіжна система може стягувати понад вартості послуг будь-якого роду комісії та збори, включаючи комісії мобільних операторів (за їх наявності), надаючи свої послуги тільки в разі, якщо такі комісії і збори будуть оплачені користувачем. Інформацію про такі комісії і збори (за їх наявності) Користувач самостійно може дізнатися в Платіжній системі. Комісії та збори не повертаються і не відшкодовуються Компанією. Користувач, який скористався послугами платіжної системи, вважається попередженим і згодним з їх умовами.

3.4 Компанія має право в односторонньому порядку і без попереднього повідомлення Користувача змінювати умови цього договору, наповнення пакетів Підписка, розміри тарифів і т.п. шляхом розміщення відповідного документа в новій редакції на сайті.

3.5 Зміни умов цього Договору набирають чинності з моменту опублікування на сайті buhgalter.com.ua

3.6 Зміни, що стосуються наповнення пакетів Підписка, розмірів тарифів застосовуються тільки для підписок, придбаних після такої зміни.

3.7 Відмова від послуг після оплати неможлива.

3.8 Користувач не має права:

3.8.1 реєструватися як інша особа; вводити в оману інших користувачів щодо своєї особи, використовуючи реєстраційні дані іншої людини; навмисне спотворювати уявлення про самого себе, свій вік або свої відносини з іншими особами або іншими організаціями; передавати реєстраційні дані, логін і пароль для доступу до системи іншим особам;

 

4. Автоподовження підписки

 

4.1 Учасники оплачують доступ до сайту buhgalter.com.ua щомісяця, надають згоду на послуги автоматичного регулярного продовження Підписки на новий термін (автоподовження Підписки). Після активації даної послуги оплата нового терміну Підписки здійснюється шляхом автоматичного безакцептного списання коштів з рахунку користувача. Послуга автоподовження Підписки надається до тих пір, поки Користувач не повідомить про її скасування в особистому кабінеті користувача, заповнивши необхідну форму.

4.2 Послуга вважається скасованою з наступного оплатного періоду.

4.3 Послуга активується при здійсненні першої або чергової оплати Підписки, що означає згоду користувача з тим, що після закінчення оплаченого строку дії Передплати Договір автоматично пролонгується на тих же умовах на той же термін з автоматичним списанням вартості Передплати з рахунку Користувача

4.4 У разі недостатності коштів на рахунку користувача або неможливості проведення платежу Підписка на новий термін не надається, а послуга «автоподовження Підписки» відключається, до моменту появи коштів на рахунку користувача або заміни користувачем рахунку в особистому кабінеті).

4.5 При зміні Товариством тарифів на підписку автоподовження Підписка на черговий новий термін, наступний за періодом, протягом якого відбулася така зміна буде здійснено за новим тарифом.

 

5. Припинення відносин з Компанією. зміна угоди

 

5.1. Компанія і Користувач домовилися, що компанія має право припинити підтримувати Сайт (надавати доступ / надавати послуги) в будь-який час на власний розсуд.

5.2. Компанія залишає за собою право припинити доступ до Сайту, якщо: доступ до Сайту втрачений через відсутність зв'язку на маршруті від Користувача до Сайту; Користувачеві відмовлено в доступі до Сайту внаслідок порушення ним «Інтрукціі користування сайтом» (http://budget.factor.ua/faq.php) або перевищення обсягу прав на використання Сайту.

5.3. Компанія залишає за собою право за своїм вибором без попереднього повідомлення та / або роз'яснення причин: змінювати, виправляти, обмежувати, припиняти чи зупиняти дію Сайту і будь-яких його розділів (матеріалів, ресурсів, сервісів); відмовляти Користувачеві в доступі до користування Сайтом і / або будь-якого його розділу. Задоволення / розгляд потреб Користувача при використанні Сайту не є обов'язком Компанії.

 

6. Заключні положення

 

6.1. Сайт може містити посилання на інші Інтернет - сайти. Дані сайти не перебувають під контролем Компанії і Компанія не несе відповідальності за зміст даних сайтів та / або зміст сайтів, посилання на які знаходяться на даних сайтах. Посилання на інші сайти включені в Сайт тільки для зручності користувачів і не означають згоду Компанії та його посадових осіб з вмістом даних сайтів. Інші Інтернет - сайти можуть містити посилання на Сайт без спеціального дозволу Компанії.

6.2. У разі незгоди Користувача з будь-яким з умов цієї угоди він зобов'язаний негайно припинити використання Сайту і / або будь-якого з його розділів.

6.3. У разі якщо компетентними органами / особами частина цієї угоди буде визнана недійсною, такою, що суперечить законодавству і не підлягає застосуванню, це не тягне неможливість застосування інших положень цієї угоди. Ця угода діє повною мірою в рамках, встановлених чинним законодавством.

6.4. До відносин в рамках цієї Угоди застосовується право України. Користувач і Компанія домовилися підкорятися при виникненні будь-яких спорів, що виникають у зв'язку зі справжньою угодою (використанням Сайту), виключно юрисдикції судів України.

Для того, чтоб распечатать текст необходимо авторизоваться или зарегистрироваться
Закрити
icon-block
Заважає реклама?
Ви маєте можливість її відключити всього за 30 грн