Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2011, 16:04   #1
Richard123
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 26
По умолчанию Создание значений на основе одного столбца (без дублировани)

Добрый день!

Есть вопрос как сделать в макросе создание списка данных содержащих, на основе имеющихся данных?

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

Что есть:
Выгрузка, в которой на основание данных первого столбца (там прописаны модели (текстом). В этой выгрузке данные в первом столбце дублируются. Надо сделать чтобы исходя из названий в первом столбце получить 3 строки. Вот так:

Есть
Model1
Model2
model3
model1
model4
и так далее

Что нужно:
Model1 | A1 | 0
Model1 | A2 | 0
Model1 | A3 | 0
Model2 | A1 | 0
Model2 | A2 | 0
Model2 | A3 | 0
Model3 | A1 | 0
Model3 | A2 | 0
Model3 | A3 | 0


Подскажите пожалуйста как сделать?
Richard123 вне форума Ответить с цитированием
Старый 18.01.2011, 16:17   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Пример файла прикрепите - что есть, и что надо получить.
EducatedFool вне форума Ответить с цитированием
Старый 19.01.2011, 09:26   #3
Richard123
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 26
По умолчанию

Вот пример. Есть лист "Дано" и есть "Надо"
Смысл попытаться обойти метод копирования всех данных (их в 10-ки раз больше чем в примере как по строкам так и поколонкам, на там не меняемые значения).
Вложения
Тип файла: rar 111.rar (11.2 Кб, 15 просмотров)
Richard123 вне форума Ответить с цитированием
Старый 20.01.2011, 15:08   #4
Richard123
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 26
По умолчанию

Есть предложения?
Richard123 вне форума Ответить с цитированием
Старый 20.01.2011, 15:17   #5
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Записал макрорекордером:
Код:
Sub Макрос1()
    ActiveSheet.Range("$A$1:$D$19").RemoveDuplicates Columns:=Array(1, 3), Header _
        :=xlYes
End Sub
nilem вне форума Ответить с цитированием
Старый 21.01.2011, 09:13   #6
Richard123
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 26
По умолчанию

Цитата:
Сообщение от nilem Посмотреть сообщение
Записал макрорекордером:
Код:
Sub Макрос1()
    ActiveSheet.Range("$A$1:$D$19").RemoveDuplicates Columns:=Array(1, 3), Header _
        :=xlYes
End Sub
Макрорекодером не интересно, т.к. длина выгрузки может быть любой, как и кол-во столбцов.

Впринципе мне кажется что нужно вводить переменные и от этого скакать.
Переменные для ROWS и COLUMNS и дальше под ARRAY. Тогда возможно получиться избежать ситуации когда есть "лишний столбец" и длина выгрузки варьируется от выгрузки к выгрузки)

Другое дело сработает ли?))
Richard123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование данных с одного листа на другой по значению первого столбца Lis000iq Microsoft Office Excel 11 07.03.2010 13:34
Сумма значений столбца Grom48 БД в Delphi 4 28.12.2009 21:39
Изменение значенией в формуле на основе значений в ячейках ru3000 Microsoft Office Excel 11 07.08.2009 13:25
перенос значений с одного листа на другой ANDREEY Помощь студентам 2 10.02.2009 23:22
Вычисление значений тригонометрических функций на основе разложения в ряд Маклорена Gangzta Помощь студентам 3 10.01.2009 15:47