Страница 1 из 4
составить выборку из повторяющихся значений и создать отчет
Добавлено: 20 мар 2008, 18:58
SunKiSSka
Please help!
Очень нужна ваша помощь.
Ситуация следующая: есть лист, на котором есть список названий, причем одно название может повторяться несколько раз. Далее еще два столбца. Затем столбец Language и два столбца ID и HO, в ячейках которых напротив соответствующего названия и обознацения языка стоит число.
Необходимо сделать отчет (вида см. файл. Sheet2), в котором в строке с конкретным названием (названия не должны поторяться) в колонке языка ставилась бы дата (из Sheet1) в первую очередь из столбца HO (если есть)а если нет то из столбца ID. Если дата берется из Sheet1 столбец ID, то эта ячейка окрашивается в красный цвет, а если из столбца HO - то в зеленый.
Re: составить выборку из повторяющихся значений и создать отчет
Добавлено: 21 мар 2008, 02:58
VictorM
А таблицу Вашу посмотреть не могу

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

Re: составить выборку из повторяющихся значений и создать отчет
Добавлено: 21 мар 2008, 08:31
SunKiSSka
VictorM писал(а):А таблицу Вашу посмотреть не могу

У меня Office 2003 и на 2007 переходить пока не собираюсь
вот таблица в формате '03. ))
Re: составить выборку из повторяющихся значений и создать отчет
Добавлено: 21 мар 2008, 09:43
VictorM
SunKiSSka, смотрю Вашу таблицу.
Вообще говоря, всегда когда вопрос касается работы со списками, выборкой и т.д. я для начала даю вот эту ссылочку. Рекомендую посмотреть.
http://www.planetaexcel.ru/tip.php?aid= ... f13e745e57
А потом уже можно будет и дальше думать.
Re: составить выборку из повторяющихся значений и создать отчет
Добавлено: 21 мар 2008, 11:08
SunKiSSka
вообще говоря я это видела и не один раз, но дело в том что у меня задача не в том чтобы выбрать уникальные записи из списка. нужно в соответствии с названием (столбец А) и значением в столбце "Priority" на новый лист вставить уникальный список, дату либо из столбца G (в первую очередь) либо из столбца F. сформировать список уникальных значений не проблема, мне не совсем понятно как на Sheet2 на пересечении одной из сток "Name" и языка поставить необходимое значение даты (из Sheet1).
может необходимо сделать какие-нибудь идентификаторы, либо через объединение нескольких значений и, соответственно, созданием вспомагательной таблицы?
Re: составить выборку из повторяющихся значений и создать отчет
Добавлено: 21 мар 2008, 12:24
VictorM
Приблизительно понятно

Я вот попробовал получить дату так
Код: Выделить всё
Дата = Range("A2").Offset(0, 5).Value
If Дата = "" Then Дата = Range("A2").Offset(0, 6).Value
ну а потом уже всталять куда надо и раскрашивать.
Re: составить выборку из повторяющихся значений и создать отчет
Добавлено: 21 мар 2008, 12:53
SunKiSSka
VictorM писал(а):Я вот попробовал получить дату так
Код: Выделить всё
Дата = Range("A2").Offset(0, 5).Value
If Дата = "" Then Дата = Range("A2").Offset(0, 6).Value
ну а потом уже всталять куда надо и раскрашивать.
а не могли бы вы поподробнее: это куда и к чему, к какому листу, значению или диапазону?
Re: составить выборку из повторяющихся значений и создать отчет
Добавлено: 21 мар 2008, 13:56
VictorM
Исходя из задачи: просматриваем дипазон с фамилиями, Лист1 столбец Name.
и смотрим дату в столбце 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
теперь передаем в список Листа2 и дальше в цикле.
Re: составить выборку из повторяющихся значений и создать отчет
Добавлено: 21 мар 2008, 15:27
SunKiSSka
VictorM писал(а):Исходя из задачи: просматриваем дипазон с фамилиями, Лист1 столбец Name.
и смотрим дату в столбце F, если дата есть - принимаем ее как переменную и исползуем в дальнейшем построении итоговой таблицы. Если нет - принимаем дату из столбца G.
Тут еще можно по ходу смотреть язык (ст. E) и сразу заносить дату именно в столбец с языком на Листе 2.
Все это оформить циклом. Ну и, конечно, раскрашивать из условия - откуда взята дата.
Может это не супер, но должно работать.
сам алгоритм мне понятен, но только не знаю с чего начать да и с циклами все время бьюсь - не совсем понимаю принцип их написания.
Вы не могли бы примерную структуру цикла набросать. Примерно следующие наверно должно быть:
Код: Выделить всё
For n=2 to 3000
....
If...Then
Else
End if
Next
Re: составить выборку из повторяющихся значений и создать отчет
Добавлено: 21 мар 2008, 15:49
VictorM
Я думаю лучше применить Do Loop чтобы не считать строки, а пройти диапазон до последней пустой строки.
Код: Выделить всё
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/