Як знайти діапазони чисел (з введенням тексту) в Excel


0

У стовпці А я маю декілька номерів, відформатованих як текст через провідні нулі:

+------+
|  A   |
+------+
| 0001 |
| 0002 |
| 0003 |
| 0012 |
| 0013 |
| 0015 |
| 0017 |
| 0019 |
| 0020 |
+------+

Використовуючи стовпець A як вхідний, я хочу заповнити дві інші стовпці B і C, наприклад:

+------+------+
|  B   |  C   |
+------+------+
| 0001 | 0003 |
| 0012 | 0013 |
| 0015 |      |
| 0017 |      |
| 0019 | 0020 |
+------+------+

Я в основному хочу початок і кінець кожного діапазону чисел.

Числа, не включені до стовпця А, повинні бути опущені з діапазонів у стовпцях B і C.

Як це можна досягти в Excel?

Відповіді:


1

Це має зробити це:

Sub dural()
  Dim N As Long, i As Long, K As Long, v As Long
  Dim vOld As Long
  N = Cells(Rows.Count, "A").End(xlUp).Row + 1
  K = 1

  For i = 1 To N
    v = CLng(Cells(i, 1).Value)
    If i = 1 Then
      Cells(1, "B").Value = v
      vOld = v
    Else
      If v = vOld + 1 Then
      Else
        Cells(K, "C").Value = vOld
        K = K + 1
        Cells(K, "B") = v
      End If
      vOld = v
    End If
  Next i

  For i = 1 To K
    If Cells(i, "B").Value = Cells(i, "C").Value Then Cells(i, "C").Value = ""
    If Cells(i, "B").Value = 0 Then Cells(i, "B").Value = ""
  Next i
End Sub

enter image description here


Дивовижний, спасибі - Він чудово працює. Чи знаєте ви, як я можу зробити це вихідний текстовий формат, так що провідні нулі зберігаються в діапазонах? Це поштові індекси, тому потрібні провідні нулі.
Leif

1
@Leif Можна використовувати формат користувацького номера 0000 зберегти провідні нулі.
Gary's Student
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.