Страницы: 1
RSS
Выбрать первые в списке значения, отличающиеся на -+1
 
Из диапазона выбрать первые "примерные" повторы, различающиеся только в последней цифре на -+1
putnik
 
И вам доброе время суток.
Вариант на Power Query. По тому же принципу, что и в вашей предыдущей теме.
Успехов.
 
Спасибо Андрей GV! С Power Query на рабочем так и не разобрался, поставить так и не смог. NF 3.5 установлен. Поэтому пытаюсь найти другое решение. Но увы пока без результатов. А к вам просьба, неделю рою нет, а вразумительного описания или учебника по Power Query для себя не нашел, что посоветуете. Ваш пример разобрал и вроде все понятно, но соорудить самому пока УВЫ.  
putnik
 
Формулами..
 
Доброе время суток
Цитата
putnik написал:
А к вам просьба, неделю рою нет, а вразумительного описания или учебника по Power Query для себя не нашел, что посоветуете.
Есть только на английском
описание языка, offline справочник по функциям. Книги Power Query for Power BI and Excel, M Is for (Data) Monkey: A Guide to the M Language in Excel Power Query. И блоги, для примера, Chris Webb's BI Blog.
Успехов.
P. S. Если вы программируете, то это же можно сделать и на VBA, будет, на мой взгляд и быстрее.
 
Андрей VG и Маугли, огромное Вам спасибо и извините за столь долгую реакцию. Были семейные трудности и совсем было не до Экселя.
С наступающим Новым Годом!!!
putnik
 
Маугли, Ваше решение тоже интересное(подобная мысль возникала), но увы работает только на данном примере. Если рейсы одинаковы и буквой, а отличаются только цифрами, то не работает. Как пример если: N6663 и N6664; N6670 и N6669 уже не считает, хотя разница остается -+1?
putnik
 
Доброе время суток
putnik, и вас с грядущим Новым Годом и Рождеством! Удачи, благополучия в семье!
 
Цитата
putnik написал:
уже не считает
Попробуйте так.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
добрый вечер,можно также макросом(с дополнительным столбцом C ,кнопка test,вывод в столбец G
 
Код
Sub test()
   Dim i&, j&, m&: m = 1
For i = 2 To Range("C" & Rows.Count).End(xlUp).Row - 1
  For j = i + 1 To Range("C" & Rows.Count).End(xlUp).Row
 If Left(Range("B" & i), 3) = Left(Range("B" & j), 3) And Abs(Range("C" & i) - Range("C" & j)) = 1 Then
      m = m + 1: Range("G" & m) = Range("B" & i)
 End If
  Next j, i
 End Sub
 
добавлю,вариант со считыванием в массив,что побыстрее
 
Код
Sub test2()
   Dim i&, z, z1, j&, k&, m&: m = 1
   z = Range("B2:C" & Range("B" & Rows.Count).End(xlUp).Row).Value
   For k = 1 To UBound(z): z(k, 2) = Right(z(k, 1), 2): Next
   ReDim z1(1 To UBound(z), 1 To 1)
 For i = 1 To UBound(z) - 1
  For j = i + 1 To UBound(z)
 If Left(z(i, 1), 3) = Left(z(j, 1), 3) And Abs(z(i, 2) - z(j, 2)) = 1 Then
      m = m + 1: z1(m, 1) = z(i, 1)
 End If
  Next j, i
  Range("G1").Resize(m, 1) = z1
 End Sub
Страницы: 1
Наверх