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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 04.04.2008, 13:51   #1
Demitriy
 
Регистрация: 04.04.2008
Сообщений: 8
По умолчанию Поиск одинаковых строк

Доброго времени суток всем форумчанам. Появилась задача: нужно найти в таблице 2 или 3 одинаковых значения в первом столбце и скопировать их вместе со всей строкой под таблицу. Можно ли это сделать с помощью Excel'я? Заранее спасибо


--------- примечание модератора - вдруг кому пригодится --------------
Цитата:
Надстройка LOOKUP предназначена для сравнения и подстановки значений в таблицах Excel.

Если вам надо сравнить 2 таблицы (по одному столбцу, или по нескольким),
и для совпадающих строк скопировать значения выбранных столбцов из одной таблицы в другую,
надстройка «Lookup» поможет сделать это нажатием одной кнопки.


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

Скачать надстройку для сравнения таблиц Excel и копирования данных из одинаковых строк


Последний раз редактировалось EducatedFool; 30.09.2013 в 09:22.
Demitriy вне форума
Старый 04.04.2008, 20:20   #2
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

Можно, приложите сюда часть вашей таблицы
Pavel55 вне форума
Старый 04.04.2008, 21:49   #3
Demitriy
 
Регистрация: 04.04.2008
Сообщений: 8
По умолчанию

12.02. Золото 742,00 720,00
12.02. Серебро 14,20 13,40
12.02. Платина 1 575,00 1 505,00
12.02. Палладий 368,00 340,00

28.02 Золото 756,00 734,00
28.02 Серебро 15,37 14,50
28.02 Платина 1 680,00 1 600,00
28.02 Палладий 445,00 410,00

Это часть таблицы, всю не могу - просто не за чем. Так вот, нужно, чтобы Excel искал во втором столбце два одинаковых наименования по всему листу, т.е. золото-золото или серебро-серебро (там их много) и давал таблицу вида

12.02. Золото 742,00 720,00
28.02 Золото 756,00 734,00

и так далее желательно чтобы еще и сортировалось далее по первому столбцу. Можно конечно использовать простую сортировку, но добавлять после каждого значения строку - уйма времени уйдет.
И еще вопрос Если во втором столбце идут наименования на иностранном языке - Gold, Or, Oro, как эти значения так же добавлять к русским?
Demitriy вне форума
Старый 04.04.2008, 22:34   #4
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

хм, приложите Excel-таблицу (файл с расширением *.xls) )) Хотя бы с той инфо, которую вы указали в своём посте или вы хотите, чтобы я это всё руками набирал в своём Excel?
Pavel55 вне форума
Старый 04.04.2008, 22:45   #5
Demitriy
 
Регистрация: 04.04.2008
Сообщений: 8
По умолчанию

Excel'евский файл он не понял, прикрепил архивом
Вложения
Тип файла: rar Drmet.rar (1.7 Кб, 99 просмотров)
Demitriy вне форума
Старый 04.04.2008, 23:52   #6
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

Слова Золото, серебро и Gold, Or, Oro - для Excel разные - т.е. их придётся переименовывать самому (Правка - Найти/заменить)

Последний раз редактировалось Pavel55; 04.04.2008 в 23:59.
Pavel55 вне форума
Старый 05.04.2008, 01:33   #7
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

Посмотрите файл
Вложения
Тип файла: rar Drmet_макрос.rar (11.3 Кб, 361 просмотров)
Pavel55 вне форума
Старый 05.04.2008, 09:07   #8
дмидми
Форумчанин
 
Аватар для дмидми
 
Регистрация: 06.03.2008
Сообщений: 352
Вопрос Ка-а-ак интересно!..

Pavel55, нельзя ли запостить сюда хелп по Application.Match?

Какой-то "неизвестный науке зверь". VBA такого (.Match) не подсказывает, в свойствах-методах объекта Application такое не числится, хелп сообщает "Невозможно отобразить страницу", в MSDN инфы нет - но почему-то макрос работает

P.S. Пока искал, наткнулся еще и на Application.VLookup
Тоже, похоже, нечто полезное, но что именно?
дмидми вне форума
Старый 05.04.2008, 09:34   #9
Demitriy
 
Регистрация: 04.04.2008
Сообщений: 8
По умолчанию

Pavel55, спасибо огромное !!! Еще вопрос: можно сделать макрос, который бы добавлял одну или две пустых строки в таблицу (в любую, не обязательно в эту)
Demitriy вне форума
Старый 05.04.2008, 13:35   #10
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

Функция MATCH это английский аналог русской функции ПОИСКПОЗ, т.е. эта функция определяет в какой по номеру позиции стоит запрашиваемый элемент.

ПОИСКПОЗ(искомое_значение; просматриваемый_массив; тип_сопоставления)

Как пример, ищем номер позиции пятёрки в указанном массиве

=ПОИСКПОЗ(5;{0;3;5;15};0)

0 - означает "искать точное соответствие"

функция вернёт нам 3, т.е. пятёрка стоит по счёту третья слева {0;3;5} в указанном массиве. Если же искомого значения нет в просматриваемом массиве, то функция вернёт ошибку. Поэтому мы и используем On Error.

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

полная запись:
- Application.WorksheetFunction.Match (выпадающий список будет после слова WorksheetFunction)

укороченная запись:
- WorksheetFunction.Match (выподающий список будет)

ещё более укороченная запись:
- Application.Match - выподающего списка не будет, но работать функция будет, т.к. объект Application является родителем
WorksheetFunciton, просто меньше букв надо набирать руками


VLookup - это функция рабочего листа Excel ВПР. Я думаю, она вам известна.
Pavel55 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Excel max 256 строк VS user надо 300 строк Exo Microsoft Office Excel 3 10.01.2008 17:14
ПОИСК ОДИНАКОВЫХ СЛОВ (не проходите мимо!) MAD Помощь студентам 12 24.12.2007 22:41
Нахождение двух одинаковых элементов в массиве Stas))) Помощь студентам 4 01.06.2007 12:23
Поиск одинаковых строк в файле ATL Помощь студентам 13 02.05.2007 01:05
2 одинаковых Ip адреса Alar Работа с сетью в Delphi 12 24.12.2006 10:21