Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как сравнить ячейки в excel, ПОМОГИТЕ!!!!! 
:(
    Опции темы
z2000
Дата 18.3.2009, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.3.2009

Репутация: нет
Всего: нет



Всем привет. Есть два столбца в excel (Например A1:A1000 и B1:B1000) нужно сравнить столбец B со столбцом A. То есть В1 сравнивается с А1, затем с А2 итд. Затем B2 сравнивается с А1, А2 итд. В случае если совпаления есть между столбцами ячейки, в столбце С писалась бы какая-нибудь информация...

В идеале сравнение бы сравнение шло не в полном объеме а частично. 
Такая программа нужна для сравнения прайсов
например в одном прайсе

"часы наручные изумруд", во втором прайсе "часы Изумруд"

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

Есть функция СОВПАД, но она умеет сравнивать только одну ячейку со второй ячейкой, а как массивами сравнивать????? smile 
PM MAIL   Вверх
FINANSIST
Дата 18.3.2009, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Статус: Жив
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 11.4.2008
Где: Москва

Репутация: 13
Всего: 23



Меня всегда интересовал вопрос - почему  в банальных примитивнейших задачах пользователям хочется видеть именно VBA - решение?
Воткнуть в столбец "С1" элементарную формулу "=А1=В1", автозаполнением растянуть  и отобрать по значению "ЛОЖЬ" автофильтром воспитание запрещает?
Цитата(z2000 @  18.3.2009,  13:48 Найти цитируемый пост)
Есть функция СОВПАД, но она умеет сравнивать только одну ячейку со второй ячейкой, а как массивами сравнивать?????  

Ну или, если лень целый дополнительный столбец "С" формировать, воткнуть в одну единственную ячейку =и(А1:А65000=В1:В65000) не забыв вместо Enter нажать Ctrl+Shift+Enter



--------------------
“...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности”
Эдуард Успенский, “Каникулы в Простоквашино”
PM MAIL ICQ   Вверх
z2000
Дата 18.3.2009, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.3.2009

Репутация: нет
Всего: нет



а как сделать если не полное совпадение? Как в примере с часами? 
А как растянуть автозаполнением?
Здесь ситуация такая, что A2 совсем не обязательно будет равна B2, но она может быть равна B500...
Да и потом ограничение же есть в экселе, максимум 255 
Сейчас я выкручиваюсь, так:
пишу =ИЛИ(СОВПАД(A849;$B$1:$B$252))
затем в следующем столбце: 
=ИЛИ(СОВПАД(A843;$B$253:$B$501))
затем в следующем столбце: 
=ИЛИ(СОВПАД(A843;$B$253:$B$701))
(У меня всего 700 позиций!!!

А как можно упростить????
PM MAIL   Вверх
Akina
Дата 18.3.2009, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(z2000 @  18.3.2009,  16:00 Найти цитируемый пост)
A2 совсем не обязательно будет равна B2, но она может быть равна B500

Смотрим в сторону 
Код

С1=ЕНД(ВПР(B1;A1:B1000;2;ЛОЖЬ))


Цитата(z2000 @  18.3.2009,  16:00 Найти цитируемый пост)
а как сделать если не полное совпадение? Как в примере с часами? 

Вручную. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Staruha
Дата 18.3.2009, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Цитата

а как массивами сравнивать?????   


  на VBA ф-я Split


--------------------
Возмездие настигнет
PM MAIL   Вверх
FINANSIST
Дата 18.3.2009, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Статус: Жив
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 11.4.2008
Где: Москва

Репутация: 13
Всего: 23



Цитата(Staruha @  18.3.2009,  16:07 Найти цитируемый пост)
Цитатаа как массивами сравнивать?????     
на VBA ф-я Split


Цитата

Visual Basic Language Reference  
Split Function (Visual Basic)  
Returns a zero-based, one-dimensional array containing a specified number of substrings.


Staruha, а для чего данная функция нужна автору топика?


--------------------
“...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности”
Эдуард Успенский, “Каникулы в Простоквашино”
PM MAIL ICQ   Вверх
z2000
Дата 19.3.2009, 03:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.3.2009

Репутация: нет
Всего: нет



Вручную особо не сделаешь. Нужно что-то типа функции, которая бы искала ячейки с определенной долей совадения, и выдавала бы их. Такое возможно реализовать?
PM MAIL   Вверх
Staruha
Дата 20.3.2009, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Цитата

Staruha, а для чего данная функция нужна автору топика? 

Так спросил же как сравнивать массивы.А Split разделит ячейку на массивы

Код

MArray = Range("A" & r).Value
MyMasiv = Split(MArray)
дальше идем по строкам + два цикла
if 
MyMasiv(i)=MyMasiv2(ii)

 что-то вроде этого.Но здесь проблема в том что есть одинаковые элементы массива в разных изделиях Например часы Изумруд и часы Слава и там и там есть элемент массива часы. Поэтому надо изначально присваивать каждому изделию код,а назвать можно как угодно
 


--------------------
Возмездие настигнет
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.