1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Заказ на макрос для excel

Тема в разделе "Программирование", создана пользователем Гость, 22.05.06.

  1. Гость

    Гость Гость

    Нужен макрос (желательно, но не принципиально) на VBA, умеюший сравнивать, ячейки из указанных столбцов двух файлов (поиск в ячейках столбца AA файла1 элементов ячеек n1,...,nn столбца BB файла2) и перенос данных с запросом у пользователя в результирующий файл.


    ПЛАЧУ. в разумных пределах.

    ЗЫЖ на самом деле все несколько сложнее, но принцип такой
     
    Последнее редактирование модератором: 22.05.06
  2. Гость

    Гость Гость

    можно более подробно !

    1. Возможно более подробно расписать задание.
    так как простое сравнение это одно, а вот написание уже небольшого интерфейса или мастера где пользователь выбирает по шагам что нужно сделать это уже другое (то есть выбор столбцов, условия сравнения ...).
    2. Сроки
    3. Разумные пределы
     
  3. Devillio

    Devillio Активный участник

    1.192
    0
    icq 197-070-221.
    Млин, пока время есть, дайте работы!!!
     
  4. Гость

    Гость Гость

    Спасибо модератору, не упускающему возможности порезать чужие сообщения, МОЛОДЕЦ!

    Дублирую первое сообщение:

    Нужен макрос (желательно, но не принципиально) на VBA, умеюший сравнивать, ячейки из указанных столбцов двух файлов (поиск в ячейках столбца AA файла1 элементов ячеек n1,...,nn столбца BB файла2) и перенос данных с запросом у пользователя в результирующий файл.

    пример:

    есть:

    файл 1.xls

    файл 2.xls

    надо:

    выделили или ввели диапазон столбцов/яцеек и получили

    файл 2.xls

    и чтобы требовало подтверждения (да/нет?)

    Сроки: не горит, но хотелось бы до начала июня. Интерфейс не обязательно. (окошко с запросом не в счет) Контактный тел - 8 927 25 28 456.
     
    Последнее редактирование модератором: 22.05.06
  5. Devillio

    Devillio Активный участник

    1.192
    0
    во мля. это как анализ проводить? по первому слову ячейки? или по указанным вхождениям? короче, неясно. "анализ" неясно как проводить. или тупо переносить ячейки построчно? :smoke:
     
  6. AlTk

    AlTk Читатель

    10.699
    0
    Гость, во первых, мы с вами на брудершафт не пили, а во-вторых лично мне, да и другим, неприятно читать Ваши примеры с задницами и ляжками.
     
  7. buffoon

    buffoon Активный участник

    6.379
    0
    [off]телепат? или я пропустил соц опрос[/off]
     
  8. AlTk

    AlTk Читатель

    10.699
    0
    buffon, 1. соц. опроса не было;
    2. другие - не значит все;
    3. Ваша подпись мне тоже не нравится.
     
  9. Гость Stephen

    Гость Stephen Гость


    согласен на 200%.
    достало уже это плебейство во всем. Падонки и прочее отребье.

    по теме: есть сильное подозрение, что это даже не обязательно программировать, обойдемся формулами, которые сделают список расхождений/совпадений.
     
  10. Гость

    Гость Гость

    отвечаю всем:
    Мне нужен макрос, обойдется это формулами или программированием на VBA - решать вам.
    Напрягает модерирование. Я 2 раза понятно объяснил пример. Модератор удалял несмотря на то, что мата, флуда, офтопика, пошлости или оскарблений не было, 2 страницы кодов тоже не было => он или не правильно понимает употребляемые им выражения (я Вам не тыкал, панибратством не занимался, причем тут брудершафт?) или у него обостренное восприятие моих примеров и дорога ему на форум психологический.
    ну удивлюсь, если это сообщение так же не все успеют прочтиать :)

    Есть:
    файл 1

    Вино Домен де Гран Пуже Бержерак красное сух 8,000
    0.75л 12.5% Кристиан Пайру Франция

    Вино Дон Барджелло белое сухое 6,000
    3л 11% Ле Сеп Франсэ Франция


    Файл 2

    Дон Барджелло (красн.) 3 л
    Домен Бержерак кр/сух

    надо:

    Дон Барджелло (бел.) 3 л 6
    Домен Бержерак кр/сух 8

    Звоните.
     
  11. buffoon

    buffoon Активный участник

    6.379
    0
    [off]я уже писал о своих предпочтениях.. :kos: [/off]

    [off]самокритика? :upset: [/off]
     
  12. AlTk

    AlTk Читатель

    10.699
    0
    Гость, действительно, Вы мне не тыкали. приношу свои извинения.
    а теперь позвольте, я переформулирую Вашу просьбу.
    условие:
    1. имеются два файла - в первом хранятся полные артикульные названия продукции (для использования в документах), а во втором сокращенные (для использования в разговоре)
    2. в первом файле кроме артикульного названия также хранится количество продукции
    задача
    для каждого наименования продукции во втором файле необходимо проставить количество, взятое из первого файла.

    вообще говоря задача не такая уж и тривиальная
    1. для каждой строки из второго фала надо найти все строки из первого в которых существует максимальное количество совпадений для каждого слова из строки (если результирующая строка одна, то это и будет ответ).
    2. в случае, если результирующих строк несколько, то нужно выполнить в этих строках нечеткий поиск по тем словам из наименования второго файла для которых не нашлось соответсnвия. Строка из первого файла, дающая максимально хороший результат и есть ответ.
    Пример:
    (кстати у вас в примере ошибка. во втором файле должно быть Дон Барджелло (бел.)
    Есть:
    файл 1

    1. Вино Домен де Гран Пуже Бержерак красное сух 8,000
    0.75л 12.5% Кристиан Пайру Франция
    2. Вино Домен де Гран Пуже Бержерак белое сух 12,000
    0.75л 12.5% Кристиан Пайру Франция
    3. Вино Дон Барджелло белое сухое 6,000
    3л 11% Ле Сеп Франсэ Франция

    Файл 2

    1. Дон Барджелло (бел.) 3 л
    2. Дон Барджелло (крсн.) 3 л
    3. Домен Бержерак кр/сух

    после выполнения первого шага получим,
    третьей строке из второго файла соответствует только одна строка из первого, а именно – строка 3
    первой и второй строкам из второго файла соответствуют первая и вторая строки из первого файла.
    после выполнения второго шага (нечеткий поиск по "бел" и "крсн" ) получим необходимое соответсвие.

    ПС. уважаемый Гость, учитесь выражать свои мысли ясно и четко.
     
  13. Fl@sh

    Fl@sh Активный участник

    655
    0
    А не судьба сделать что-нибудь типа третьего файла с табличкой соответствия полного и сокращенного наименования? тогда и анализа никакого не надо, и результат поиска будет 100%-ный.
     
  14. Гость Stephen

    Гость Stephen Гость

    насчет задачи

    Довольно интересно
    не сочтите за рекламу )), на ai.j4.ru/alt.php у меня реализован кластеризатор строк.

    если ему скормить кучу строк, он выберет группы максимально похожих.
    понятное дело, что в вашем случае это нетривиально и недетерминировано. пришлите пожалуйста мне в мыло - юзер Stephen форума - примеры ваших xls - файликов. трех десятков записей хватит с лихвой
     
  15. AlTk

    AlTk Читатель

    10.699
    0
    Гость Stephen,
    действительно интересная задачка.
    материалы можно искать по ключевым словам "расстояние Хемминга", "расстояние Левештейна", "алгоритм Ландау -Вишкина", "Вагнер-Фишер", "Хиршберг" и "русский Soundex"

    ПС. в принципе, потянет на курсовую работу.
     
  16. Гость

    Гость Гость

    AlTk, Вы поняли правильно. Мои навыки прогаммирования заканчиваются турбопаскалем и QBasic'ом поэтому объяснить задачу так я не могу.

    Для тех, кто хочет попробовать, отправлю на мейл небольшие примеры таблиц.
    Я не зарегистрирован, поэтому адреса видеть не могу. Отправляйте свои на NFed@bk.ru, я отвечу.

    Прошу модератора спустя день-два удалить мой e-mail из сообщения.
     
  17. HorstWessel

    HorstWessel Активный участник

    1.585
    0
    Гость Stephen,
    AlTk,
    А регулярными выражениями воспользоваться не судьба?
     
  18. AlTk

    AlTk Читатель

    10.699
    0
    HorstWessel, не судьба.
    при использовании регулярных выражений необходимо знать как приблизительно выглядит то, что мы ищем.
     
  19. HorstWessel

    HorstWessel Активный участник

    1.585
    0
    Бывает иначе? Поиск смысла жизни в расчет не принимается.

    Регулярное выражение может поставить в соотвествие как точное совпадение так и сколь угодно "приблизительное". Лучшего инструмента пока не придумано.

    К примеру:
    Вино Дон Барджелло белое сухое 6,000 3л 11% Ле Сеп Франсэ Франция

    запишем как
    Вино([\s]{1,}[Дон]){0,1}[\s]Б(а|о)рдже(л|лл)о[\sбел[ое]{0,1}]{0,1}[\.]*

    и тогда
    Вино Дон Барджелло белое
    Вино Дон Барджелло бел
    Вино Дон Барджело белое
    Вино Дон Борджелло бел
    Вино Барджелло
    .....

    будут соответствовать искомой строке
     
  20. AlTk

    AlTk Читатель

    10.699
    0
    HorstWessel,
    "... Бывает иначе ..." да, бывает
    во первых, регулярное выражение мы должны придумать для каждого из скажем десяти тысяч наименований продукции :)
    во вторых ваше регулярное выражение не сможет найти такие записи
    "Вин. ДонБардж"
    " бел. Барджел вин."
    и так далее, в зависимости от фантазии/скорости набора и/или ошибок пользователя.
     
  21. Гость

    Гость Гость

    подобное и человек не факт что найдет корректно.

    короче - задачу ф топку.

    заказчику советовать так изменить технологию работы, чтобы подобной проблемы просто не возникало. имхо не все делается табличками экселя задешево.
     
  22. AlTk

    AlTk Читатель

    10.699
    0
    Гость, речь идет не о человеке, а об ЭВМ и использовании специальных алгоритмов.

    но я с Вами согласен в том, что дешево это не получиться сделать - надо лтбо менять технологию работы, например использовать штрих-кодирование, либо платить деньги за разработку ПО, выполняюющего анализ введенных строк.
     

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

    К примеру в исходном есть "Дон барджедло, фр, бел, 0,5", а в конечном "Дон барджелло бел полусух". Разбиваем исходную ячейку на текстовые переменные с используя пробелы, отметаем часто повтораящиеся элементы типа "бел", "красн", "игристое", "фр" по оставшмся делаем поиск сначала по одному слову, потом из результатов поиска по второму и т.д. Затем показываем пользователю наиболее близкие варианты и спрашиваем какой принять. Далее переносим кол-во принятого варианта во второй файл. всё.
     
  24. Еще момент:

    Содержание ячеек, по кот. ведется поиск - европейские вина.
    По-сути там есть
    1. название (может различаться в конечном и исходном файлах, но обязательно содержит совпадаюшие слова)
    2. производитель (в конечном файле может не быть)
    3. характеристики (красное, белое, полусладкое и пр.)
    4. объем

    сначала ищем по названию, потом по характеристике и по литражу.
    И никакого анализа! Простой перебор. Переложите это на VBA и все! работы _максимум_ на 3 часа! Достало уже вручную искать.. Сам бы давно сделал, да некогда сейчас с книжками сидеть. Я всего один раз писал на VBA и то простую работу с файлами.
     
  25. TigerVI

    TigerVI Активный участник

    2.960
    0
    к вопросу о штрих коде.... некоторые производители умудряются один штрихкод применять к разному товару, пересортицы не избежать... хотя проблем будет меньше...1С дешовое и простое решение
     
  26. buffoon

    buffoon Активный участник

    6.379
    0
    вот в этом и и будет слабое место...
     
  27. Mix

    Mix Активный участник

    7.766
    0
    Вся задача не стоит реализации. Нужно сформировать (если ее еще нет) таблицу соответствия. Других адекватных путей нет.
     
  28. Гость

    Гость Гость

    а
    как иё сделать? В половине случаев есть артикулы на исходном/конечном листах и полное соответствие установить мона.

    Вот вазму и сделаю сам программу на VBA, тогда адекватный путь появица!
     
  29. Гость

    Гость Гость


    единственный юзер хотимой программы - это я. И позволь не согласиться, я не слабое место.. Уже пол года я переношу данные из одного файла в другой с помощью CTRL+F и собственного AI, процент ошибок в списке из 300 наименований - 0%.

    Странно, что с такой простой задачей никто из присутствующих справится не хочет/может. Тем более за денежку. Одни теоретики собрались.
     
  30. AlTk

    AlTk Читатель

    10.699
    0
    Гость,
    "... Странно, что с такой простой задачей никто из присутствующих справится не хочет/может. Тем более за денежку. Одни теоретики собрались. ..."
    а огласите, пожалуйста, сколько Вы готовы заплатить за реализацию этой задачи?