составить выборку из повторяющихся значений и создать отчет
Модератор: Naeel Maqsudov
Please help!
Очень нужна ваша помощь.
Ситуация следующая: есть лист, на котором есть список названий, причем одно название может повторяться несколько раз. Далее еще два столбца. Затем столбец Language и два столбца ID и HO, в ячейках которых напротив соответствующего названия и обознацения языка стоит число.
Необходимо сделать отчет (вида см. файл. Sheet2), в котором в строке с конкретным названием (названия не должны поторяться) в колонке языка ставилась бы дата (из Sheet1) в первую очередь из столбца HO (если есть)а если нет то из столбца ID. Если дата берется из Sheet1 столбец ID, то эта ячейка окрашивается в красный цвет, а если из столбца HO - то в зеленый.
Очень нужна ваша помощь.
Ситуация следующая: есть лист, на котором есть список названий, причем одно название может повторяться несколько раз. Далее еще два столбца. Затем столбец Language и два столбца ID и HO, в ячейках которых напротив соответствующего названия и обознацения языка стоит число.
Необходимо сделать отчет (вида см. файл. Sheet2), в котором в строке с конкретным названием (названия не должны поторяться) в колонке языка ставилась бы дата (из Sheet1) в первую очередь из столбца HO (если есть)а если нет то из столбца ID. Если дата берется из Sheet1 столбец ID, то эта ячейка окрашивается в красный цвет, а если из столбца HO - то в зеленый.
- Вложения
-
- Test.zip
- (10.2 КБ) 44 скачивания
- VictorM
- Сообщения: 794
- Зарегистрирован: 23 окт 2006, 01:44
- Откуда: Lugansk, Ukraine
- Контактная информация:
А таблицу Вашу посмотреть не могу 
У меня Office 2003 и на 2007 переходить пока не собираюсь

У меня Office 2003 и на 2007 переходить пока не собираюсь

"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
научите их ловить рыбу - и вы накормите их на всю жизнь".
вот таблица в формате '03. ))VictorM писал(а):А таблицу Вашу посмотреть не могу
У меня Office 2003 и на 2007 переходить пока не собираюсь![]()
- Вложения
-
- test.zip
- (4.4 КБ) 40 скачиваний
- VictorM
- Сообщения: 794
- Зарегистрирован: 23 окт 2006, 01:44
- Откуда: Lugansk, Ukraine
- Контактная информация:
SunKiSSka, смотрю Вашу таблицу.
Вообще говоря, всегда когда вопрос касается работы со списками, выборкой и т.д. я для начала даю вот эту ссылочку. Рекомендую посмотреть.
http://www.planetaexcel.ru/tip.php?aid= ... f13e745e57
А потом уже можно будет и дальше думать.
Вообще говоря, всегда когда вопрос касается работы со списками, выборкой и т.д. я для начала даю вот эту ссылочку. Рекомендую посмотреть.
http://www.planetaexcel.ru/tip.php?aid= ... f13e745e57
А потом уже можно будет и дальше думать.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
научите их ловить рыбу - и вы накормите их на всю жизнь".
вообще говоря я это видела и не один раз, но дело в том что у меня задача не в том чтобы выбрать уникальные записи из списка. нужно в соответствии с названием (столбец А) и значением в столбце "Priority" на новый лист вставить уникальный список, дату либо из столбца G (в первую очередь) либо из столбца F. сформировать список уникальных значений не проблема, мне не совсем понятно как на Sheet2 на пересечении одной из сток "Name" и языка поставить необходимое значение даты (из Sheet1).VictorM писал(а):Рекомендую посмотреть.
http://www.planetaexcel.ru/tip.php?aid= ... f13e745e57
А потом уже можно будет и дальше думать.
может необходимо сделать какие-нибудь идентификаторы, либо через объединение нескольких значений и, соответственно, созданием вспомагательной таблицы?
- VictorM
- Сообщения: 794
- Зарегистрирован: 23 окт 2006, 01:44
- Откуда: Lugansk, Ukraine
- Контактная информация:
Приблизительно понятно 
Я вот попробовал получить дату так
ну а потом уже всталять куда надо и раскрашивать.

Я вот попробовал получить дату так
Код: Выделить всё
Дата = Range("A2").Offset(0, 5).Value
If Дата = "" Then Дата = Range("A2").Offset(0, 6).Value
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
научите их ловить рыбу - и вы накормите их на всю жизнь".
а не могли бы вы поподробнее: это куда и к чему, к какому листу, значению или диапазону?VictorM писал(а):Я вот попробовал получить дату такну а потом уже всталять куда надо и раскрашивать.Код: Выделить всё
Дата = Range("A2").Offset(0, 5).Value If Дата = "" Then Дата = Range("A2").Offset(0, 6).Value
- VictorM
- Сообщения: 794
- Зарегистрирован: 23 окт 2006, 01:44
- Откуда: Lugansk, Ukraine
- Контактная информация:
Исходя из задачи: просматриваем дипазон с фамилиями, Лист1 столбец Name.
и смотрим дату в столбце F, если дата есть - принимаем ее как переменную и исползуем в дальнейшем построении итоговой таблицы. Если нет - принимаем дату из столбца G.
Тут еще можно по ходу смотреть язык (ст. E) и сразу заносить дату именно в столбец с языком на Листе 2.
Все это оформить циклом. Ну и, конечно, раскрашивать из условия - откуда взята дата.
Может это не супер, но должно работать.
****
p.s. код для одной строки
теперь передаем в список Листа2 и дальше в цикле.
и смотрим дату в столбце F, если дата есть - принимаем ее как переменную и исползуем в дальнейшем построении итоговой таблицы. Если нет - принимаем дату из столбца G.
Тут еще можно по ходу смотреть язык (ст. E) и сразу заносить дату именно в столбец с языком на Листе 2.
Все это оформить циклом. Ну и, конечно, раскрашивать из условия - откуда взята дата.
Может это не супер, но должно работать.

****
p.s. код для одной строки
Код: Выделить всё
Sub Test() 'получить информацию первой строки списка Листа 1
Range("A2").Activate
Name = ActiveCell.Value
язык = ActiveCell.Offset(0, 4).Value
Дата = ActiveCell.Offset(0, 5).Value
цвет = Range("F1").Interior.ColorIndex
If Дата = "" Then
Дата = ActiveCell.Offset(0, 6).Value
цвет = Range("G1").Interior.ColorIndex
End If
End Sub
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
научите их ловить рыбу - и вы накормите их на всю жизнь".
сам алгоритм мне понятен, но только не знаю с чего начать да и с циклами все время бьюсь - не совсем понимаю принцип их написания.VictorM писал(а):Исходя из задачи: просматриваем дипазон с фамилиями, Лист1 столбец Name.
и смотрим дату в столбце F, если дата есть - принимаем ее как переменную и исползуем в дальнейшем построении итоговой таблицы. Если нет - принимаем дату из столбца G.
Тут еще можно по ходу смотреть язык (ст. E) и сразу заносить дату именно в столбец с языком на Листе 2.
Все это оформить циклом. Ну и, конечно, раскрашивать из условия - откуда взята дата.
Может это не супер, но должно работать.![]()
Вы не могли бы примерную структуру цикла набросать. Примерно следующие наверно должно быть:
Код: Выделить всё
For n=2 to 3000
....
If...Then
Else
End if
Next
- VictorM
- Сообщения: 794
- Зарегистрирован: 23 окт 2006, 01:44
- Откуда: Lugansk, Ukraine
- Контактная информация:
Я думаю лучше применить Do Loop чтобы не считать строки, а пройти диапазон до последней пустой строки.
****
Здесь отличная справка по циклам и не только http://www.msoffice.nm.ru/vba/
Код: Выделить всё
Sub TestDoLoop()
Range("A2").Activate
имя = ActiveCell.Value
Do Until имя = ""
iCount = iCount + 1
ActiveCell.Offset(1, 0).Activate
имя = ActiveCell.Value
Loop
MsgBox "Число повторений : " & iCount
End Sub
Здесь отличная справка по циклам и не только http://www.msoffice.nm.ru/vba/
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
научите их ловить рыбу - и вы накормите их на всю жизнь".