Уважаемые господа! Вопрос следующий: Есть два списка. В обоих списках есть повторяющиеся данные, но повторяются они разное количество раз. Необходимо в первый список подставлять значения из второго. но поочередно. Т.е. ищем первый раз значение и подставляем, тот параметр, который соответствует первому встречающемуся значению, затем второму и т.д. Пример прилагаю.
аналогичной задачи на форуме не нашла. Очень прошу помочь мне.
Уважаемые господа! Вопрос следующий: Есть два списка. В обоих списках есть повторяющиеся данные, но повторяются они разное количество раз. Необходимо в первый список подставлять значения из второго. но поочередно. Т.е. ищем первый раз значение и подставляем, тот параметр, который соответствует первому встречающемуся значению, затем второму и т.д. Пример прилагаю.
аналогичной задачи на форуме не нашла. Очень прошу помочь мне.Надежда
Function snadezdoi(cto, scem) Dim i&, ii& cto = cto.Value scem = scem.Value ReDim out(1 To UBound(cto), 1 To 1) Do i = i + 1 out(i, 1) = "нет" For ii = 1 To UBound(scem) If scem(ii, 1) = cto(i, 1) Then out(i, 1) = scem(i, 2) scem(i, 1) = Empty scem(i, 2) = Empty Exit For End If Next Loop While i < UBound(cto) snadezdoi = out End Function
[/vba] На лист сразу в диапазон как формулу массива:
Код
=snadezdoi(E9:E17,I9:J17)
UDF кажись попрще будет: [vba]
Код
Function snadezdoi(cto, scem) Dim i&, ii& cto = cto.Value scem = scem.Value ReDim out(1 To UBound(cto), 1 To 1) Do i = i + 1 out(i, 1) = "нет" For ii = 1 To UBound(scem) If scem(ii, 1) = cto(i, 1) Then out(i, 1) = scem(i, 2) scem(i, 1) = Empty scem(i, 2) = Empty Exit For End If Next Loop While i < UBound(cto) snadezdoi = out End Function
[/vba] На лист сразу в диапазон как формулу массива: