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 за този съвет.

Предишна Статия Следваща Статия

Топ Съвети