Поиск между столбцами и таблицами строк, которые могут содержать несколько грамматических ошибок или записаны в предложении - PullRequest
0 голосов
/ 21 февраля 2019

Поэтому я попытался использовать этот код для сравнения двух столбцов между собой, так как он, предположительно, является гораздо более эффективной альтернативой 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...