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

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

Код: plaintext
1.
2.
3.
4.
5.
6.
A	B	C
________________
 3 	 2 	
 5 	 3 	
 8 	 5 	
	 1 	
	 6 	
...
Рейтинг: 0 / 0
Сравнение двух колонок (Excel)
    #34393802
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в колонке С вставить формулу =IF(A1=B1;B1;"")
...
Рейтинг: 0 / 0
Сравнение двух колонок (Excel)
    #34393806
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Сравнение двух колонок (Excel)
    #34394024
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Сравнение двух колонок (Excel)
    #34394044
Gadeyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Макрос который запостил andMegaM подходит, а можно ли, чтоб макрос не копировал, а перемещал найденные равные значения в колонку С?
...
Рейтинг: 0 / 0
Сравнение двух колонок (Excel)
    #34394398
Gadeyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GadeykaПри этом вырезанные значения замещал NULL'ом.
...
Рейтинг: 0 / 0
Сравнение двух колонок (Excel)
    #34395046
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
Сравнение двух колонок (Excel)
    #34403836
Программист Дёня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Сравнение двух колонок (Excel)
    #34404007
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
Сравнение двух колонок (Excel)
    #34404668
Программист Дёня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сравнение двух колонок (Excel)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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