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

Вход

Регистрация

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

 

= Мир MS Excel/проверить в массиве, повторно ли обращается абонент - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
проверить в массиве, повторно ли обращается абонент
Vladimir32 Дата: Четверг, 21.02.2019, 22:18 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Коллеги, добрый день.
В очередной раз очень очень нужна Ваша помощь.
Возможно ли сделать макрос:
Существует файл, в котором примерно более 500 000 обращений, необходимо проверить повторяются один и тот же номер 2 раза с одной и той же темой, и сравнить разницу даты между создания второго обращения и даты закрытия первого обращения.
Прилагаю файл, на первом листе - данные и где нужно чтобы работал макрос
на втором листе содержится "Логика" по которой должен происходить расчет
на третьем, что должно получаться.
К сообщению приложен файл: 123456.xlsm (21.0 Kb)
 
Ответить
СообщениеКоллеги, добрый день.
В очередной раз очень очень нужна Ваша помощь.
Возможно ли сделать макрос:
Существует файл, в котором примерно более 500 000 обращений, необходимо проверить повторяются один и тот же номер 2 раза с одной и той же темой, и сравнить разницу даты между создания второго обращения и даты закрытия первого обращения.
Прилагаю файл, на первом листе - данные и где нужно чтобы работал макрос
на втором листе содержится "Логика" по которой должен происходить расчет
на третьем, что должно получаться.

Автор - Vladimir32
Дата добавления - 21.02.2019 в 22:18
bmv98rus Дата: Пятница, 22.02.2019, 00:24 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Формула не подойдет?
Код
=IF(COUNTIFS($B$1:$B1;B2;$E$1:E1;E2;$D$1:D1;">="&C2-2);"Повторка";"Единичное")

Если примерно знать, сколько строк нужно анализировать (сколько обращений в течении 2х, 3х дней , то можно усложнить, но ускорить для большого объема.
тут типа на 20 строк. Надо на 100, то заменить на 101 и 100, 21 и 20 в формуле
Код
=IF(COUNTIFS(IF(ROW()<21;$B$1:$B1;INDEX(B:B;ROW()-20):$B1);B2;IF(ROW()<21;$E$1:E1;INDEX(E:E;ROW()-20):E1);E2;IF(ROW()<21;$D$1:D1;INDEX(D:D;ROW()-20):D1);">="&C2-2);"Повторка";"Единичное")


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Пятница, 22.02.2019, 00:36
 
Ответить
СообщениеФормула не подойдет?
Код
=IF(COUNTIFS($B$1:$B1;B2;$E$1:E1;E2;$D$1:D1;">="&C2-2);"Повторка";"Единичное")

Если примерно знать, сколько строк нужно анализировать (сколько обращений в течении 2х, 3х дней , то можно усложнить, но ускорить для большого объема.
тут типа на 20 строк. Надо на 100, то заменить на 101 и 100, 21 и 20 в формуле
Код
=IF(COUNTIFS(IF(ROW()<21;$B$1:$B1;INDEX(B:B;ROW()-20):$B1);B2;IF(ROW()<21;$E$1:E1;INDEX(E:E;ROW()-20):E1);E2;IF(ROW()<21;$D$1:D1;INDEX(D:D;ROW()-20):D1);">="&C2-2);"Повторка";"Единичное")

Автор - bmv98rus
Дата добавления - 22.02.2019 в 00:24
Vladimir32 Дата: Пятница, 22.02.2019, 05:23 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
bmv98rus, формула ранее тут и использовалась, количество строк постоянно меняется, а формулой он очень долго считает( поэтому и возникает вопрос в макросе.(
 
Ответить
Сообщениеbmv98rus, формула ранее тут и использовалась, количество строк постоянно меняется, а формулой он очень долго считает( поэтому и возникает вопрос в макросе.(

Автор - Vladimir32
Дата добавления - 22.02.2019 в 05:23
bmv98rus Дата: Пятница, 22.02.2019, 07:48 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Vladimir32, именно по этому и сделана формула 2. 500к строк это не мало, но с учетом ограничений в разумном количестве строк в которых может встретится "повтор" считать будет в разы быстрее. Вы попробуйте. Уже были примеры, когда также считалась статистика по огромному количеству строк и переходя от расчета по всему столбцу к потенциальному блоку получали расчет в секунды вместо минут. Можете данные полноценные дать? Мне интересно, я сам проверю.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Пятница, 22.02.2019, 07:50
 
Ответить
СообщениеVladimir32, именно по этому и сделана формула 2. 500к строк это не мало, но с учетом ограничений в разумном количестве строк в которых может встретится "повтор" считать будет в разы быстрее. Вы попробуйте. Уже были примеры, когда также считалась статистика по огромному количеству строк и переходя от расчета по всему столбцу к потенциальному блоку получали расчет в секунды вместо минут. Можете данные полноценные дать? Мне интересно, я сам проверю.

Автор - bmv98rus
Дата добавления - 22.02.2019 в 07:48
_Boroda_ Дата: Пятница, 22.02.2019, 09:45 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Vladimir32, у Вас в пояснении формула, сравнивающая две соседние строки. А если повтор через несколько строк? Например

555555 01.03.19 15:16 01.03.19 19:16 Обслуживание
555555 02.03.19 15:16 03.03.19 9:16 Продажи
555555 03.03.19 18:16 04.03.19 15:16 Обслуживание

то как тогда? Это повторка или нет?
И приложите файлик побольше (как можно больше, чтобы в xlsb влез в 100 кb), где много повторов, самостоятельно рисовать не хочется


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

555555 01.03.19 15:16 01.03.19 19:16 Обслуживание
555555 02.03.19 15:16 03.03.19 9:16 Продажи
555555 03.03.19 18:16 04.03.19 15:16 Обслуживание

то как тогда? Это повторка или нет?
И приложите файлик побольше (как можно больше, чтобы в xlsb влез в 100 кb), где много повторов, самостоятельно рисовать не хочется

Автор - _Boroda_
Дата добавления - 22.02.2019 в 09:45
Vladimir32 Дата: Пятница, 22.02.2019, 13:17 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Вы совершенно правы! если повтор, через несколько строк - это тоже повтор.
К сожалению основной файл приложить не могу, т.к.содержит конф.информацию, и с рабочего места даже нельзя открывать форум, поэтому прорисовал файлик, добавив разный условий повторений.
В целом суть этого макроса - Необходимо выявить повторку, а повторкой является код обращения, если клиент с таким же номером и по такой же теме (в основном файле тем больше 100) обратился повторно ранее чем за 2 ое суток после закрытия прежнего обращения.
Он может обратиться и 10 раз, но если тема обращения будет другая, то это не повтор, а в файл они загружаются выгрузкой.
К сообщению приложен файл: 4248761.xlsm (22.0 Kb)
 
Ответить
Сообщение_Boroda_, Вы совершенно правы! если повтор, через несколько строк - это тоже повтор.
К сожалению основной файл приложить не могу, т.к.содержит конф.информацию, и с рабочего места даже нельзя открывать форум, поэтому прорисовал файлик, добавив разный условий повторений.
В целом суть этого макроса - Необходимо выявить повторку, а повторкой является код обращения, если клиент с таким же номером и по такой же теме (в основном файле тем больше 100) обратился повторно ранее чем за 2 ое суток после закрытия прежнего обращения.
Он может обратиться и 10 раз, но если тема обращения будет другая, то это не повтор, а в файл они загружаются выгрузкой.

Автор - Vladimir32
Дата добавления - 22.02.2019 в 13:17
anvg Дата: Пятница, 22.02.2019, 16:02 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток
если повтор, через несколько строк - это тоже повтор.

Тогда не проще ли сводной сделать по полю номера и типа обращения подсчитать количество и отфильтровать по больше 1?
 
Ответить
СообщениеДоброе время суток
если повтор, через несколько строк - это тоже повтор.

Тогда не проще ли сводной сделать по полю номера и типа обращения подсчитать количество и отфильтровать по больше 1?

Автор - anvg
Дата добавления - 22.02.2019 в 16:02
bmv98rus Дата: Пятница, 22.02.2019, 21:01 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
anvg, Андрей, там в файле условие дополнительное есть
Цитата
если Дата закрытия предыдущего обращения по этому номеру на 2 дня меньше даны создания нового - это повторка, если нет -еденичное


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениеanvg, Андрей, там в файле условие дополнительное есть
Цитата
если Дата закрытия предыдущего обращения по этому номеру на 2 дня меньше даны создания нового - это повторка, если нет -еденичное

Автор - bmv98rus
Дата добавления - 22.02.2019 в 21:01
anvg Дата: Суббота, 23.02.2019, 13:11 | Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Дата закрытия
Михаил, чем определяется дата закрытия? Что делать, если последовательность дней для одного номера одного типа обращения: 1; 2; 4; 6 - это одно обращение?
 
Ответить
Сообщение
Дата закрытия
Михаил, чем определяется дата закрытия? Что делать, если последовательность дней для одного номера одного типа обращения: 1; 2; 4; 6 - это одно обращение?

Автор - anvg
Дата добавления - 23.02.2019 в 13:11
bmv98rus Дата: Суббота, 23.02.2019, 13:27 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Андрей, я так понял, и реализовано в формуле, что если от даты закрытия до даты открытия еще одного обращения, прошло меньше 2 дней, то это повтор. Правда не учтена ситуация, когда первое еще не закрыто, а второе уже открывается, но это второй вопрос. Посмотреть бы на реальные данные.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеАндрей, я так понял, и реализовано в формуле, что если от даты закрытия до даты открытия еще одного обращения, прошло меньше 2 дней, то это повтор. Правда не учтена ситуация, когда первое еще не закрыто, а второе уже открывается, но это второй вопрос. Посмотреть бы на реальные данные.

Автор - bmv98rus
Дата добавления - 23.02.2019 в 13:27
skais Дата: Суббота, 23.02.2019, 21:10 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 236
Репутация: 29 ±
Замечаний: 20% ±

Excel 2010
Решение.
К сообщению приложен файл: 7478685.xlsm (26.4 Kb)


Сообщение отредактировал skais - Суббота, 23.02.2019, 21:10
 
Ответить
СообщениеРешение.

Автор - skais
Дата добавления - 23.02.2019 в 21:10
Vladimir32 Дата: Воскресенье, 24.02.2019, 06:59 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
bmv98rus, формула ранее тут и использовалась, количество строк постоянно меняется, а формулой он очень долго считает( поэтому и возникает вопрос в макросе.(
 
Ответить
Сообщениеbmv98rus, формула ранее тут и использовалась, количество строк постоянно меняется, а формулой он очень долго считает( поэтому и возникает вопрос в макросе.(

Автор - Vladimir32
Дата добавления - 24.02.2019 в 06:59
Vladimir32 Дата: Воскресенье, 24.02.2019, 07:08 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
bmv98rus, если первое обращение еще не закрыто, оно не попадет в данную выгрузку, так как если его не закрывал, его не обрабатывали- следовательно повтора не спровоцирована. а приложить файл не могу( ранее описывал причину).
 
Ответить
Сообщениеbmv98rus, если первое обращение еще не закрыто, оно не попадет в данную выгрузку, так как если его не закрывал, его не обрабатывали- следовательно повтора не спровоцирована. а приложить файл не могу( ранее описывал причину).

Автор - Vladimir32
Дата добавления - 24.02.2019 в 07:08
skais Дата: Воскресенье, 24.02.2019, 09:17 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 236
Репутация: 29 ±
Замечаний: 20% ±

Excel 2010
Vladimir32 #11 Вы смотрели?
 
Ответить
СообщениеVladimir32 #11 Вы смотрели?

Автор - skais
Дата добавления - 24.02.2019 в 09:17
bmv98rus Дата: Воскресенье, 24.02.2019, 09:27 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Vladimir32, Я не настаиваю, я просто написал формулу, которая ведет пересчет не по всему массиву а только разумной части. Разумная часть - это количество обращений за период дней в которых мы ищем повторные обращения. Ну нет смысла сравнивать обращения недельной давности если надо проверить ваши 2 дня. Кстати 2 дня - это 24 часа или …нужно что б просто даты отличались на 2 дня?
Скажите, а конечная цель, именно пометить в общем списке или вывести список повторных или …. Просто запрос SQL или через PoweQuery мне кажется реальным.

[vba]
Код
SELECT `Лист1$`.`Дата закрытия`, `Лист1$`.`Дата создания`, `Лист1$`.`Код#обращения`, `Лист1$`.`Номер клиента`, `Лист1$`.`Тема обращения`
FROM `Лист1$` `Лист1$`, `Лист1$` `Лист1$_1`
WHERE `Лист1$`.`Номер клиента` = `Лист1$_1`.`Номер клиента` AND `Лист1$`.`Тема обращения` = `Лист1$_1`.`Тема обращения` AND `Лист1$`.`Дата создания` > `Лист1$_1`.`Дата закрытия` AND `Лист1$`.`Дата создания` < (`Лист1$_1`.`Дата закрытия`+2)
[/vba]

Пример положить в с:\temp или менять путь в Connetion
К сообщению приложен файл: Copy_of_123456.xlsm (23.1 Kb)


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Воскресенье, 24.02.2019, 09:43
 
Ответить
СообщениеVladimir32, Я не настаиваю, я просто написал формулу, которая ведет пересчет не по всему массиву а только разумной части. Разумная часть - это количество обращений за период дней в которых мы ищем повторные обращения. Ну нет смысла сравнивать обращения недельной давности если надо проверить ваши 2 дня. Кстати 2 дня - это 24 часа или …нужно что б просто даты отличались на 2 дня?
Скажите, а конечная цель, именно пометить в общем списке или вывести список повторных или …. Просто запрос SQL или через PoweQuery мне кажется реальным.

[vba]
Код
SELECT `Лист1$`.`Дата закрытия`, `Лист1$`.`Дата создания`, `Лист1$`.`Код#обращения`, `Лист1$`.`Номер клиента`, `Лист1$`.`Тема обращения`
FROM `Лист1$` `Лист1$`, `Лист1$` `Лист1$_1`
WHERE `Лист1$`.`Номер клиента` = `Лист1$_1`.`Номер клиента` AND `Лист1$`.`Тема обращения` = `Лист1$_1`.`Тема обращения` AND `Лист1$`.`Дата создания` > `Лист1$_1`.`Дата закрытия` AND `Лист1$`.`Дата создания` < (`Лист1$_1`.`Дата закрытия`+2)
[/vba]

Пример положить в с:\temp или менять путь в Connetion

Автор - bmv98rus
Дата добавления - 24.02.2019 в 09:27
Vladimir32 Дата: Воскресенье, 24.02.2019, 10:21 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
skais, да вот только что просмотрел файл, попробовал протестировать, он считает, но если кол-во повторов по 1 номеру больше, он их не видит видит только крайний.
я ранее в сообщении #6 добавлял файл, там на Листе "Как должно быть" больше примеров, если скопировать их на первый лист 4 столбца, и попробовать выполнить, и с примером номера:
444444 - Продажи - там 3 обращения - 2 повтора - он видит только 3й(((
Если повтор только 1 он считает хорошо.
 
Ответить
Сообщениеskais, да вот только что просмотрел файл, попробовал протестировать, он считает, но если кол-во повторов по 1 номеру больше, он их не видит видит только крайний.
я ранее в сообщении #6 добавлял файл, там на Листе "Как должно быть" больше примеров, если скопировать их на первый лист 4 столбца, и попробовать выполнить, и с примером номера:
444444 - Продажи - там 3 обращения - 2 повтора - он видит только 3й(((
Если повтор только 1 он считает хорошо.

Автор - Vladimir32
Дата добавления - 24.02.2019 в 10:21
skais Дата: Воскресенье, 24.02.2019, 10:39 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 236
Репутация: 29 ±
Замечаний: 20% ±

Excel 2010
А сейчас? Правда непонятно как действовать когда заявка внутри другой заявки. Я отсортировал - для наглядности - и чтоб голову не ломать.
К сообщению приложен файл: 2222.xlsm (23.2 Kb)


Сообщение отредактировал skais - Воскресенье, 24.02.2019, 10:41
 
Ответить
СообщениеА сейчас? Правда непонятно как действовать когда заявка внутри другой заявки. Я отсортировал - для наглядности - и чтоб голову не ломать.

Автор - skais
Дата добавления - 24.02.2019 в 10:39
Vladimir32 Дата: Воскресенье, 24.02.2019, 10:52 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
bmv98rus, попробовал запустить Ваш файл, он находит нужные обращения те - что нужны.
Но вот вопрос, а как ( точнее где он находится ) можно изменить код, если поля называются чуть по другому? чтобы попробовать на основном файле нужно поправить поля, так как на ресурс этот не могу закинуть(

А что касается повтора, это является 2 дня, а именно 48 часов, т.е. если это 48 часов и 1 минута - это уже не повтор, но это я потестировал на Вашем файле в плоть до минуты, делает он все верно.

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

Ваша мысль мне нравится, только вот не могу понять, где это прописать в файле(
 
Ответить
Сообщениеbmv98rus, попробовал запустить Ваш файл, он находит нужные обращения те - что нужны.
Но вот вопрос, а как ( точнее где он находится ) можно изменить код, если поля называются чуть по другому? чтобы попробовать на основном файле нужно поправить поля, так как на ресурс этот не могу закинуть(

А что касается повтора, это является 2 дня, а именно 48 часов, т.е. если это 48 часов и 1 минута - это уже не повтор, но это я потестировал на Вашем файле в плоть до минуты, делает он все верно.

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

Ваша мысль мне нравится, только вот не могу понять, где это прописать в файле(

Автор - Vladimir32
Дата добавления - 24.02.2019 в 10:52
skais Дата: Воскресенье, 24.02.2019, 11:17 | Сообщение № 19
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 236
Репутация: 29 ±
Замечаний: 20% ±

Excel 2010
Vladimir32 Вы как-то читаете сквозь пальцы, #17 смотрели?
 
Ответить
СообщениеVladimir32 Вы как-то читаете сквозь пальцы, #17 смотрели?

Автор - skais
Дата добавления - 24.02.2019 в 11:17
Vladimir32 Дата: Воскресенье, 24.02.2019, 12:19 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
skais, да - только что протестировал, я не видел Вашего прежнего (его еще не было на тот момент когда отвечал #18).
Это то что я хотел))) Спасибо Вам огромное!)
Вот только один момент (я думаю это прям не критично) например с обращением 607 - там смысл в том, что у абонента 3 обращения третье дублирует первое (но это крайняя редкость, поэтому даже и не важно!).
А вот еще такой вопрос (скорее всего это уже будет из мира фантастики, но все же), у нас получилось, что мы видим повторное обращение (после выполнения макроса), а возможно ли проставить "Повторка" возле обращение которое спровоцировала повторку, т.е.не возле второго закрытого, а возле того - что было закрыто первым?
 
Ответить
Сообщениеskais, да - только что протестировал, я не видел Вашего прежнего (его еще не было на тот момент когда отвечал #18).
Это то что я хотел))) Спасибо Вам огромное!)
Вот только один момент (я думаю это прям не критично) например с обращением 607 - там смысл в том, что у абонента 3 обращения третье дублирует первое (но это крайняя редкость, поэтому даже и не важно!).
А вот еще такой вопрос (скорее всего это уже будет из мира фантастики, но все же), у нас получилось, что мы видим повторное обращение (после выполнения макроса), а возможно ли проставить "Повторка" возле обращение которое спровоцировала повторку, т.е.не возле второго закрытого, а возле того - что было закрыто первым?

Автор - Vladimir32
Дата добавления - 24.02.2019 в 12:19
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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