Помогите с Excel..

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
SpitFire
Сообщения: 8
Зарегистрирован: 25 фев 2005, 15:49

Уважаемые специалисты, помогите, пожалуйста, со следующей ситуацией:

Имеется столбец "А" с данными (пример):
ААААААА
ААААААА
ААААААА
СССССС
ВВВВВВВ
ААААААА
ВВВВВВВ
ААААААА и т.д.

Как сделать так, чтобы в результате в соседнем столбце "Б" получить:
столбец "А" столбец "Б"
ААААААА 1
ААААААА 1
ААААААА 1
СССССС 3
ВВВВВВВ 2
ААААААА 1
ВВВВВВВ 2
ААААААА 1

стандартными средствами Excel
Спасибо!
SpitFire
Сообщения: 8
Зарегистрирован: 25 фев 2005, 15:49

Спасибо!
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Эх! Если бы AAAAA, ВВВВВВ, ССССС были бы числовыми.....

А так единственный способ (стандартный, т.е. как я понимаю не прибегая к макросам), который мне пока видится, это следующий:

1)
Надо получить для начала таблицу с индексами (можно на другом листе)
ААААААА 1
ВВВВВВВ 2
СССССС 3
Как это сделать: Скопировать данные на новое место. Затем с помошью меню Данные Итоги получить:

Код: Выделить всё

ААААААА  Максимум	0
	ААААААА 
	ААААААА 
	ААААААА 
	ААААААА 
	ААААААА 
ВВВВВВВ  Максимум	0
	ВВВВВВВ 
	ВВВВВВВ 
СССССС  Максимум	0
	СССССС 
После этого надо сделать Данные/Группировка/Удалить структуру
И после несложно манипуляции с сортировкой в первой колонке и авотзаменой получить исходные данные, но без повторений.

ААААААА
ВВВВВВВ
СССССС

Далее с помощью автозаполнения пронумеровать:
ААААААА 1
ВВВВВВВ 2
СССССС 3

2)
Второй этап самый простой. Справа от исходных данных вписываем функцию ВПР, которая и поставит в соответствие каждому значению его индекс.

=ВПР(A1;$G$5:$H$7;2;ЛОЖЬ)

$G$5:$H$7 - это ссылка на табличку с индексами, которая получена на первом этапе.

Первый этап можно наверное существенно сократить, если воспользоваться стандартной надстройкой ODBC. Надо иметь установленной эту надстройку, озаглавить столбец с исходными данными, диапазону с исходными данными дать имя, сохранить книгу. Затем в отдельном диапазоне с помощью функции =SQL.REQUEST выполнить запрос "select distinct... order by...". Получатся отсортированные данные без повторений. Причем, они автоматически будут корректироваться при изменении исходных данных!
SpitFire
Сообщения: 8
Зарегистрирован: 25 фев 2005, 15:49

Спасибо огромное!
Ответить