Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 37 • Страница 1 из 21  2  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 14.09.2004
Откуда: //Earth/Eurasia
Задача в следующем!
Есть 2 списка.
В первом только одна колонка с названиями транзисторов.
В другой несколько колонок - названия, маркировка и так далее. Во втором списке названий много больше.
Нужно как то автоматизировать процесс дополнения колонок первого списка: то есть берем первый транзюк из первого списка, ищем его во втором и копируем все дополнительные колонки для него из второго списка и так далее..
Вручную работы на год. Помогите пожалста...

_________________
Мой сайт www.techno-mind.ru - статьи о самоделках, технологиях, моддинге, тюнинге авто и т.д.



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 23.10.2003
Откуда: Иркутск
Можно макросом на VBA сделать.

_________________
Глюк, который можно отловить, не есть истинный Глюк.
Патч, который можно написать, не есть истинный Патч.


 

Member
Статус: Не в сети
Регистрация: 14.09.2004
Откуда: //Earth/Eurasia
vor я не знаю бейсика...
знал бы - не спрашивал бы...
Можно тупо написать макрос чтоб искал во втором списке, копировал, вставлял в первый, но как зациклить?

_________________
Мой сайт www.techno-mind.ru - статьи о самоделках, технологиях, моддинге, тюнинге авто и т.д.


 

Member
Статус: Не в сети
Регистрация: 27.10.2003
Откуда: Минск
MindHunter
конкретный пример давай в студию ;)


 

Member
Статус: Не в сети
Регистрация: 14.09.2004
Откуда: //Earth/Eurasia
bdfy не понял... какой пример? файлы чтоль бросить или что?

_________________
Мой сайт www.techno-mind.ru - статьи о самоделках, технологиях, моддинге, тюнинге авто и т.д.


 

Advanced member
Статус: Не в сети
Регистрация: 23.10.2003
Откуда: Иркутск
Цитата:
файлы чтоль бросить

Угу.

_________________
Глюк, который можно отловить, не есть истинный Глюк.
Патч, который можно написать, не есть истинный Патч.


 

Member
Статус: Не в сети
Регистрация: 27.09.2004
Откуда: moscow
ну если без VB, то можно попробовать юзать следующие текстовые функции и их комбинации с логическими:
(названия пишу для русской версии:))

для поиска вхождения стороки в строку:

НАЙТИ(...)
ПОИСК(...)

для объединения/дополнения:

СЦЕПИТЬ(...)

Не факт что получиться реализовать все в одном столбце, скороее всего без кучи промежуточных не обойдется, но, как мне кажется, вполне реально сделать.

Можно в тупую в первом элементе первого свободного столбца сделать функцию, которая ищет вхождение первого(N-ого) элемента первого стобца во второй, протянуть до конца второго столбца, где есть совпадение(ЛОГ. 1) - СЦЕПИТЬ(...). и т.д.(во втором свободном столбце, второй эл-т первого.....до конца(протягиванием;)). Результат будет в той ячейке гже СЦЕПИТЬ(), и вероятно по строкам.....ну стороку в столбец не сложно преобразовать). По моему минут за 20 максимум можно сделать.


 

Member
Статус: Не в сети
Регистрация: 14.09.2004
Откуда: //Earth/Eurasia
vor bdfy мыла дайте вышлю... 118 килобайт...

Shadow of death у меня ексель на английском
знания его - стремятся к нулю...

Добавлено спустя 3 минуты, 33 секунды:
можно попробовать по другому задачу поставить
предположим в первом списке одна колонка во втором много
надо удалить все строки из второго списка, которых нет в первом, и добавить те которых нет во втором

_________________
Мой сайт www.techno-mind.ru - статьи о самоделках, технологиях, моддинге, тюнинге авто и т.д.


 

Member
Статус: Не в сети
Регистрация: 27.09.2004
Откуда: moscow
MindHunter
Ну названия функции в английской версии будут примерно такими

Text functinos:

FIND(), SEARCH() и STRCPY()(или STRCOPY()) - очень примерно...))


Для второй формулировки помимо функций поиска, сцепления строк и логических еще понадобятся функции удаления строк(частей строк):
ДЛТСТР(...) - STRDEL()( STRDELETE() )

_________________
Глава Ордена ненавистников дня св. Валентина.


 

Member
Статус: Не в сети
Регистрация: 27.10.2003
Откуда: Минск
MindHunter
_bdfy1985[at]yandex.ru
Только ты бы лучше выложил где ;) иначе все советы будут немного мимо ...
Просто мне самому придеться решать подобную задачу на днях - так что помогу :)
BTW , у екселя очень неплохой хелп ,а у VBA еще лучше ;) Там главное начать - прога сама подскажет :)


 

Member
Статус: Не в сети
Регистрация: 14.09.2004
Откуда: //Earth/Eurasia
bdfy отправил
так я даж не представляю с чего начать
хелп перерыл так и не напал на то что мне надо

Добавлено спустя 4 минуты, 15 секунд:
Выложить пытался - не выкладывается, ошибка говорит.. МОжет попоже получицца....

Добавлено спустя 3 минуты, 28 секунд:
Shadow of death
я б с удовольствием всё это проделал, но зная названия функциий я все равно многого не добьюсь. Я даж не предполагаю с чего начать, что и куда писать....

Добавлено спустя 10 часов, 29 минут, 48 секунд:
Мне все еще нужна помощь...

_________________
Мой сайт www.techno-mind.ru - статьи о самоделках, технологиях, моддинге, тюнинге авто и т.д.


 

Member
Статус: Не в сети
Регистрация: 27.10.2003
Откуда: Минск
MindHunter
Ну ты ,мля, умелец задачи задавать :lol:
Цитата:
Надо выкинуть из второго списка все строки которых нет в первом, и добавить те названия которых нет во втором...

на самом деле мы будем первый файл дополнять комментариями из второго ;)
Алгоритм такой :
1.Два файла сливаем ( хоть руками на первое время) в один с двумя листами .
2.Выделяем первую ячейку (название фильма ) и ищем на втором листе ( вот с поиском и есть основная засада , но вроде нашел )
3.Нашли ( если нет едем к следующему названию ) ? копируем все что справа от найденной ячейки и переносим на первый лист .Ну это в цикле там ясное дело ... Ща хелп трохи почитаю разберусь к вечеру ( если кто до меня не успеет )

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

BTW ,в VBA кроме хелпа есть запись макроса ;) тоже много чего интересного можно узнать


 

Member
Статус: Не в сети
Регистрация: 14.09.2004
Откуда: //Earth/Eurasia
bdfy короче я именно так и пытался делать. токо скопировал инфу из первого списка в дополнительный столбец во втором, и попытался записать макрос, чтоб искал совпадения, и так далее. Но как его зациклить, так и не понял как...

_________________
Мой сайт www.techno-mind.ru - статьи о самоделках, технологиях, моддинге, тюнинге авто и т.д.


 

Member
Статус: Не в сети
Регистрация: 05.01.2003
Откуда: г.Ногинск
Попробуйте использовать функцию "ВПР" я схожую но более сложную выборку делал именно ей.


 

Member
Статус: Не в сети
Регистрация: 27.10.2003
Откуда: Минск
MindHunter
Сегодня уже не сложиться - я за своим курсачом свое отсидел:( Вообще впредь тебе сюда ;)
http://bbs.vbstreets.ru/viewforum.php?f=7


 

Member
Статус: Не в сети
Регистрация: 14.09.2004
Откуда: //Earth/Eurasia
bdfy нет проблем.. я подожду. спасибо тебе

_________________
Мой сайт www.techno-mind.ru - статьи о самоделках, технологиях, моддинге, тюнинге авто и т.д.


 

Member
Статус: Не в сети
Регистрация: 27.10.2003
Откуда: Минск
хотя нашел простую идейку для твоего случая - завтра реализуем ;)
вот здесь глянь http://bbs.vbstreets.ru/viewtopic.php?t=8734


 

Member
Статус: Не в сети
Регистрация: 14.09.2004
Откуда: //Earth/Eurasia
bdfy глянул. Даже догнал программный код. С чем себя и поздравляю. НО. Как всегла есть но. Я все еще не знаю с чего начать. Я так понял ты предлагаешь вручную написать целый макрос? Эх был бы это СИ, я б накатал (и то с трудом, ибо все еще его учу), а в бейсике я по сути профан полный...

_________________
Мой сайт www.techno-mind.ru - статьи о самоделках, технологиях, моддинге, тюнинге авто и т.д.


 

Member
Статус: Не в сети
Регистрация: 27.10.2003
Откуда: Минск
Тока хотел тут жаловаться что нифига не выходит как напал на след :D Как говориться все генильное просто.
Код:
Sub Макрос1()
    Dim i, j As Integer
    Sheets("Sheet2").Select
    Cells.Select
    Selection.Copy
    Sheets("Sheet3").Select
    Cells.Select
    ActiveSheet.Paste
' это лист два копируеться на третий лист.Коряво , но это не главное .
    i = 1
    j = 1
    Do While i <= 692
    Do While j <= 869
'  682,869 -  это число строк с инфой как ты понял .Можно это дело
'посчитать и в отдельном несложном цикле, но для пары задач и так перебьемся :)
'хорошо что и так работает
    If Worksheets("Sheet1").Cells(i, 1).NoteText = Worksheets("Sheet3").Cells(j, 1).NoteText Then
    Worksheets("Sheet3").Rows(j).Delete
    End If
    i = i + 1
    j = j + 1
    Loop
    Loop
    End Sub

Куда это засунуть надеюсь знаешь ;) если нет пришли весь файл .
Только для начала не забудь список2 на второй лист первого файла забросить( можно конечно и тут макрос написать) .Потом с получившимся файлом колдуй .Результат будет на третьем листе .А и поправь конец второго файла - там английских названии нет , так что вставь русские в первую колонку.
И еще : у меня это все делаеться секунд за пять так что не пугайся если ексель подвиснет ;)


 

Member
Статус: Не в сети
Регистрация: 14.09.2004
Откуда: //Earth/Eurasia
Так скопировал второй список в первый файл. Скажи только куда этот од записать?
В скрипт-едитор? Так уже есть какой-то код. Засунуть куда нить в разрыв и все? Как потом запустить процесс?

_________________
Мой сайт www.techno-mind.ru - статьи о самоделках, технологиях, моддинге, тюнинге авто и т.д.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 37 • Страница 1 из 21  2  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  



Лаборатория














Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan