Поэтому я попытался использовать этот код для сравнения двух столбцов между собой, так как он, предположительно, является гораздо более эффективной альтернативой vlookup.Код сравнивает столбцы, а затем копирует / вставляет совпадающие значения в другой столбец.Источник кода - ответ № 26 по следующей ссылке на форумах MrExcel (https://www.mrexcel.com/forum/excel-questions/1043185-vlookup-vba-alternative-3.html#post5014908).
Моя текущая проблема с кодом заключается в том, что я не могу заставить его работать для строковых значений в целом.Я пробовал несколько разных вещей, от Countif, Wordif, Chardif, до различных способов манипулирования строками, найденных в Ultimate Guide to String Functions, и я так и не получил никаких результатов.
Однажды работая для строковых значений, я бы хотелпусть он находит строки с пропущенными буквами, лишними буквами, иногда две буквы различаются в одном слове, почти никогда не бывает больше трех букв, а иногда строки встречаются в предложении.
Без сомнения, что-то естьчто-то не так с моим кодом, или, возможно, я поступаю неправильно. Как и в случае с моими предыдущими публикациями, я буду работать над этой таблицей, и если я найду решение, как с моими последними двумя вопросами, я опубликую его, но этот выглядит следующим образомэто гораздо сложнее решить.
Примеры ошибокпеллинги и предложения: Набор данных
Извините за формат текста столбцов, но я не могу заставить https://senseful.github.io/text-table/ работать на меня
Столбец 1:
nbaol®, eraba, eraba, licstclaieaaanli, cdia, cdia, daeic, daeic, xcalea, xcalea, rxedeaa, aneoisstafmalg, ilargc, litaol, aletna, oialrat
10: 22 * 2 22 **
nbaaol® eraba, т.е. aravcvv.eraba т.е. aravcvv, licstclaieaanli 10 XM / 5 ХМ, CDIA (ЛАКАЛД), прДпДпоеДеноАК, CDIA (ЛАКАЛД) прДпДпоеДеноАК, daeic 150SL / 250SL čteblpa aeslopjaošitj arsšmemnnd, CDIA (ЛАКАЛД) прДпДпоеДеноАК, daeic 150SL / 250SL čteblpa aeslopjaošitj arsšmemnnd, xcalea, rlmciém lcoeéplpui,rxedsseaa Mara555 + Kara 645, aneoitamalg 15 BL ðforga, litaol 10 XM / 5 XM (ЛАКАЛД) прДпДпоеДеноАК, aletna-MORA, oialrat®, oialrat nbaol® eraba
Ссылки, с которыми я работаю:
https://www.mrexcel.com/forum/excel-questions/486708-compare-two-strings-find-difference-2.html#post4291032 https://excelmacromastery.com/vba-string-functions/#InStr_Description_ofParameters
Вот код с сайта.Я удалил код For kk = 2 To 18, поскольку мне пока не нужно копировать несколько столбцов
Sub testlookup()
Dim lastrow, lastrow2, i As Long
Dim Searchfor, j, inarr As Variant
'Data Dump Sheet
With Sheets("Sheet 2")
lastrow = .Cells(Rows.Count, "A").End(xlUp).Row
inarr = Range(.Cells(1, 1), .Cells(lastrow, 20))
End With
'Values to look up & paste Sheet
With Sheets("Sheet 1")
lastrow2 = .Cells(Rows.Count, "B").End(xlUp).Row
' load variant array with sercha variables
searcharr = Range(.Cells(1, 1), .Cells(lastrow2, 1))
' define an output aray
outarr = Range(.Cells(2, 3), .Cells(lastrow2, 19))
End With
On Error Resume Next
For i = 2 To lastrow2
For j = 2 To lastrow
Searchfor = searcharr(i, 1)
If inarr(j, 1) = Searchfor Then
outarr(i, 3) = inarr(j, 1)
Exit For
End If
Next j
Next i
' writeout the output array
With Sheets("Sheet 1")
Range(.Cells(2, 3), .Cells(lastrow2, 19)) = outarr
End With
End Sub