날짜가 이렇게 정렬된 텍스트 파일이 있습니다.
name1
2010-01-02 (i)
2010-05-07 (i)
2010-06-12 (i)
name2
2010-01-02 (i)
2010-05-07 (i)
2010-06-12 (i)
name3
2011-01-05 (i)
2011-05-05 (i)
2011-06-14 (i)
다음과 같이 2개의 열이 있는 스프레드시트의 데이터를 정렬하는 기능이나 방법이 있습니까?
+---------------+-----+
| 2010-01-02 (i)|name1|
| 2010-05-07 (i)|name1|
| 2010-06-12 (i)|name1|
| 2010-01-02 (i)|name2|
| 2010-05-07 (i)|name2|
| 2010-06-12 (i)|name2|
| 2011-01-05 (i)|name3|
| 2011-05-05 (i)|name3|
| 2011-06-14 (i)|name3|
+---------------+-----+
그러면 항목을 정렬하고 계산할 수 있습니까?
편집하다
A열을 반복할 수 있는 매크로를 작성해야 할 것 같습니다.
- !만약에 "()"
- 세포를 자르다
- 그렇지 않으면 셀 B를 붙여넣으세요.
답변1
데이터가 Sheet1의 A열에 있다고 가정하면 다음과 같은 방법이 적용됩니다.
Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Option Explicit
Sub rearrange()
Dim elements As Integer, rowIndex As Integer, i As Integer
Dim Name As String
' LO Basic additions
Dim Doc As Object
Dim Sheet As Object
dim cell as object
Doc = ThisComponent
Sheet = Doc.Sheets.getByName("Sheet1")
Cell = Sheet.getCellRangeByName("D1")
Cell.formula = "=COUNTA(A1:A104586)"
elements = cell.value
rowIndex = 1
For i = 1 To elements
If Right(Range("A" & i), 3) <> "(i)" Then
Name = Range("A" & i)
Else
Range("B" & rowIndex) = Name
Range("C" & rowIndex) = Range("A" & i)
rowIndex = rowIndex + 1
End If
Next
End Sub