標題:
[發問]如何找出每月固定一筆資料
[打印本頁]
作者:
mfsong
時間:
2014-4-2 13:32
標題:
[發問]如何找出每月固定一筆資料
本帖最後由 GBKEE 於 2014-4-2 17:07 編輯
請問已知日期中如何再一堆資料中每月該日期的資料,也就是每月一筆資料?麻煩的是資料是每2~3天不定期一筆,
若找不到該月份的日期資料,就以該日期前日的資料為準,詳附件例子,請各位高手幫忙!!
[attach]17929[/attach]
作者:
p212
時間:
2014-4-2 13:55
回復
1#
mfsong
從問題的描述與附件看不出您的困擾與期待為何,可否提供預期結果範例?
謝謝!
作者:
mfsong
時間:
2014-4-2 17:44
回復
2#
p212
Sorry, 前面說明不清楚;補充如後:來源資料是但是每隔2~3天一筆之連續數月的資料,希望輸入固定一天資訊後,之後能整理出該月的當天資料,
例如:輸入13,希望整理出1/13, 2/13, 3/13,.....的每行資料,其中若無2/13,則往前推2/12資料為準。
以上說明。
作者:
Hsieh
時間:
2014-4-3 10:22
回復
3#
mfsong
Sub ex()
Dim Mydate#, d%, Rng As Range, A As Range
d = InputBox("輸入基準日", , 13)
ym = Format([B1], "yyyy/")
Set Rng = UsedRange.Columns(1)
For i = 1 To 12
Mydate = DateValue(ym & i & "/" & d)
k = d
Do Until IsNumeric(Application.Match(Mydate, Rows(1), 0))
k = k - 1
If k < 1 Then GoTo 10
Mydate = DateValue(ym & i & "/" & k)
Loop
Mydate = DateValue(ym & i & "/" & k)
Set A = UsedRange.Columns(Application.Match(Mydate, Rows(1), 0))
Set Rng = Union(Rng, A)
10
Next
Rng.Select '選取資料範圍
End Sub
複製代碼
作者:
mfsong
時間:
2014-4-3 13:54
回復
4#
Hsieh
Exactly! 程式很精簡,不過資料無法處理跨年說...謝謝了!
作者:
GBKEE
時間:
2014-4-3 16:45
回復
5#
mfsong
Option Explicit
Sub Ex()
Dim Mydate As Double, d As Integer, Rng As Range, A As Range, yy As Integer, i As Integer, k As Integer
d = InputBox("輸入基準日", , 13)
Set Rng = UsedRange.Columns(1)
For yy = Year([B1]) To Year([B1].End(xlToRight)) '年度
For i = 1 To 12 '月份
For k = d To 1 Step -1 '往前找日期
Mydate = DateValue(yy & "/" & i & "/" & k)
If IsNumeric(Application.Match(Mydate, Rows(1), 0)) Then
Set A = UsedRange.Columns(Application.Match(Mydate, Rows(1), 0))
GoTo 10
End If
Next
For k = d + 1 To Day(DateAdd("m", 1, DateValue(yy & "/" & i)) - 1) '往後找日期
Mydate = DateValue(yy & "/" & i & "/" & k)
If IsNumeric(Application.Match(Mydate, Rows(1), 0)) Then
Set A = UsedRange.Columns(Application.Match(Mydate, Rows(1), 0))
GoTo 10
End If
Next
10
If Not A Is Nothing Then Set Rng = Union(Rng, A)
Set A = Nothing
Next
Next
Rng.Select '選取資料範圍
End Sub
複製代碼
作者:
mfsong
時間:
2014-4-3 17:55
回復
6#
GBKEE
謝謝版主!問題解決了!我曾自己嘗試解決,因很多指令不熟,使得程式搞得很複雜,但看得各位高手式子又短,羨慕各位功力!
THANKS!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)