Excel - Съвпадение на низ с колона & нарастване с 1
Проблем
Имам два листа с данни, както следва:
Лист :
Струна, резултат
A0101
Формат на низ в колона А 1: Axxxx (A - азбука от a до z, x число 0-9). азбуката е серия стартер.
Лист 2:
A0101001 B0102001 Q9911001 S7834001 A0101002 A0101003
Колона А лист 2 - Axxxxxxx (A - азбука от a до z, x число 0-9)
последните три числа са в последователност за всеки от първите пет символа.
както в горните данни:
A0101001 A0101002 A0101003
Числото никога няма да скочи до 005 за низ A0101
Искам да съчетая низ в клетка A2 лист 1 със стойностите в колона А на лист 2.
Ако моят низ е: A0101 от лист 1 и намирам следните три записа от лист 2: A0101001, A0101002, A0101003, резултатът в клетка B2 на лист 1 е A0101004. Моите данни са последователни.
Решение
Добавих още една информация в A3 в лист 1
B0102
В лист 2 редът е заглавията на колоните и данните са по-долу
низ:
A0101001 B0102001 Q9911001 S7834001 A0101002 A0101003
След това опитайте този макрос "тест". Ако искате да проверите отново първо стартирайте mcaro "undo" и след това "test"
Под-тест () Dim r As Range, c As Range, x As String Dim j Като Integer, cfind Като диапазон Dim y As String, добавете As String j = 0 С работни листове ("sheet1") Задайте r = Range (.Range ( "A2"), .Range ("A2"). Край (xlDown)) 'msgbox r.Address за всеки c In rx = c.Value С работни листове ("sheet2") Задайте cfind = .Cells.Find (какво: = x, lookat: = xlPart) Ако cfind не е нищо, то GoTo nnext j = j + 1 add = cfind.Address 'msgbox j' msgbox add Задай cfind = .Cells.FindNext (cfind) Ако cfind не е нищо тогава .Address = add Тогава GoTo line1 'msgbox cfind.Address j = j + 1' msgbox j Loop line1: y = Mid (cfind, 6, 2) Край с 'sheet2 c.Offset (0, 1) = x & y & j + 1 nnext: j = 0 Следващ c Край с край Sub Sub undo () С работни листове ("sheet1") Обхват (.Range ("B2"), .Range ("B2"). End (xlDown)). Край на крайния под
Забележка
Благодарение на venkat1926 за този съвет.