Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сравнение двух колонок (Excel) / 10 сообщений из 10, страница 1 из 1
15.03.2007, 15:21:19
    #34393714
Gadeyka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух колонок (Excel)
Есть задача: нужно сравнить две колонки в экселе и что важное, нужно организовать так, чтобы значения колонки А сравнивались со значениями в колонке В, если значения равны, то они перемещаются в колонку С.

Для примера, в колонке А есть цифра 5 и в колонке В есть цифра 5, т.е. они равны. Нужно чтоб 5-ки переместились в колонку С и так по порядку.
Заранее благодарен.

Код: plaintext
1.
2.
3.
4.
5.
6.
A	B	C
________________
 3 	 2 	
 5 	 3 	
 8 	 5 	
	 1 	
	 6 	
...
Рейтинг: 0 / 0
15.03.2007, 15:36:39
    #34393802
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух колонок (Excel)
в колонке С вставить формулу =IF(A1=B1;B1;"")
...
Рейтинг: 0 / 0
15.03.2007, 15:37:28
    #34393806
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух колонок (Excel)
Код: plaintext
1.
2.
3.
4.
For i =  1  To ActiveCell.SpecialCells(xlLastCell).Row
   For r =  1  To ActiveCell.SpecialCells(xlLastCell).Row
If Cells(i,  1 ).Value = Cells(r,  2 ).Value Then Cells(i,  3 ).Value = Cells(i,  1 ).Value
   Next r
Next i

Может так поможет
...
Рейтинг: 0 / 0
15.03.2007, 16:39:16
    #34394024
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух колонок (Excel)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
For i =  1  To ActiveCell.SpecialCells(xlLastCell).Row
v_Counter =  0 
   For j =  1  To ActiveCell.SpecialCells(xlLastCell).Row
       If Cells(i,  1 ).Value = Cells(j,  2 ).Value Then Cells(i,  3 ).Value = Cells(i,  1 ).Value
       If Cells(i,  1 ).Value = Cells(j,  2 ).Value Then v_Counter = v_Counter +  1 
       Cells(i,  4 ).Value = v_Counter
   Next j
Next i

For r =  1  To ActiveCell.SpecialCells(xlLastCell).Row
If Cells(r,  4 ).Value <>  0  Then Cells(r,  4 ).Value = Cells(r,  1 ).Value & " " & "В колонке B встречается" & " " & Cells(r,  4 ).Value & " " & "раз"
If Cells(r,  4 ).Value =  0  Then Cells(r,  4 ).Value = Cells(r,  1 ).Value & " " & "В колонке B не встречается ни разу"
Next r
...
Рейтинг: 0 / 0
15.03.2007, 16:45:05
    #34394044
Gadeyka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух колонок (Excel)
Макрос который запостил andMegaM подходит, а можно ли, чтоб макрос не копировал, а перемещал найденные равные значения в колонку С?
...
Рейтинг: 0 / 0
15.03.2007, 18:21:27
    #34394398
Gadeyka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух колонок (Excel)
GadeykaПри этом вырезанные значения замещал NULL'ом.
...
Рейтинг: 0 / 0
16.03.2007, 08:41:02
    #34395046
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух колонок (Excel)
Попробуй этот код. Конечно он кривоватый, но вроде бы работает
Код: plaintext
1.
2.
3.
4.
5.
6.
For i =  1  To ActiveCell.SpecialCells(xlLastCell).Row
   For j =  1  To ActiveCell.SpecialCells(xlLastCell).Row
      If Cells(i,  1 ).Value = Cells(j,  2 ).Value Then Cells(i,  3 ).Value = Cells(i,  1 ).Value
      If Cells(i,  1 ).Value = Cells(j,  2 ).Value Then Cells(j,  2 ).Value =  0 
   Next j
     If Cells(i,  1 ).Value = Cells(i,  3 ).Value Then Cells(i,  1 ).Value =  0 
Next i
...
Рейтинг: 0 / 0
20.03.2007, 18:03:13
    #34403836
Программист Дёня
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух колонок (Excel)
andMegaMПопробуй этот код. Конечно он кривоватый, но вроде бы работает
Код: plaintext
1.
2.
3.
4.
5.
6.
For i =  1  To ActiveCell.SpecialCells(xlLastCell).Row
   For j =  1  To ActiveCell.SpecialCells(xlLastCell).Row
      If Cells(i,  1 ).Value = Cells(j,  2 ).Value Then Cells(i,  3 ).Value = Cells(i,  1 ).Value
      If Cells(i,  1 ).Value = Cells(j,  2 ).Value Then Cells(j,  2 ).Value =  0 
   Next j
     If Cells(i,  1 ).Value = Cells(i,  3 ).Value Then Cells(i,  1 ).Value =  0 
Next i


а не проще ли посредством функции ЕСЛИ это сделать легко и просто, да ещё автозаполнение применить?
...
Рейтинг: 0 / 0
20.03.2007, 19:01:06
    #34404007
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух колонок (Excel)
Программист Дёняа не проще ли посредством функции ЕСЛИ это сделать легко и просто, да ещё автозаполнение применить?

Смотря что для тебя проще ;-)

Можно попробовать след формулу массива (работает только с числами, не любит пустые ячейки и не требует ввода через CTRL+SHIFT+ENTER):

=НАИБОЛЬШИЙ(ЕСЛИ(ЧАСТОТА($B$1:$B$27;$A$1:$A$27)>0;$A$1:$A$27);СТРОКА(A1))

Но она сложна для понимания, а главное довольно ресурсоемкая в случае с длинными списками.

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

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
21.03.2007, 09:14:12
    #34404668
Программист Дёня
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух колонок (Excel)
KL (XL) Программист Дёняа не проще ли посредством функции ЕСЛИ это сделать легко и просто, да ещё автозаполнение применить?

Смотря что для тебя проще ;-)

Можно попробовать след формулу массива (работает только с числами, не любит пустые ячейки и не требует ввода через CTRL+SHIFT+ENTER):

=НАИБОЛЬШИЙ(ЕСЛИ(ЧАСТОТА($B$1:$B$27;$A$1:$A$27)>0;$A$1:$A$27);СТРОКА(A1))

Но она сложна для понимания, а главное довольно ресурсоемкая в случае с длинными списками.

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

KL
[MVP - Microsoft Excel]

для этого макросы и существуют ,чтоб автоматизировать работу с большим объёмом данных
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сравнение двух колонок (Excel) / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]