返回列表 上一主題 發帖

[發問] 輸出日期

[發問] 輸出日期

各位先進!
問題請教:
已知週次及星期,輸出日期

B1.rar (2.05 KB)


非常感謝指導:)
100 字節以內
不支持自定義 Discuz! 代碼

回復 12# Hsieh


    大大這個函數的寫法~ 對我工作上蠻有用處的~
    真的很厲害~
學習才能提升自己

TOP

Hsieh 版主
非常感謝您
函數方式及VBA程式碼 都可以執行
謝謝
100 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 9# b9208
若用201103表示2011年第三周這樣可行
函數方式請參考
A4=DATE(LEFT($A$2,4),1,1)-WEEKDAY(DATE(LEFT($A$2,4),1,1),2)+(RIGHT($A$2,2)-1)*7+MATCH(LOWER(B4),{"mon","tue","wed","thu","fri","sat","sun"},0)
向下複製
VBA請參考
  1. Sub nn()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. k = DateSerial(Left([A2], 4), 1, 1) - Weekday(DateSerial(Left([A2], 4), 1, 1), 2) + (Right([A2], 2) - 1) * 7
  4. For i = 1 To 7
  5. x = UCase(Format(k + i, "ddd"))
  6. d(x) = k + i
  7. Next
  8. For Each c In Range([B4], [B4].End(xlDown))
  9. c.Offset(, -1) = d(UCase(c))
  10. Next
  11. End Sub   
複製代碼
學海無涯_不恥下問

TOP

非常感謝先進們的指導
VBA程式可以使用
接下來研究學習程式的內容
再一次感謝
100 字節以內
不支持自定義 Discuz! 代碼

TOP

  1. Sub XX()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. a = [FLOOR(MID($A$2,3,2)*7+DATE(2000+LEFT($A$2,2),1,1),7)-12]
  4. For i = 0 To 6
  5. d(Format(a + i, "ddd")) = Format(a + i, "yyyy/m/d")
  6. Next
  7. For Each c In Range([b4], [b65536].End(3))
  8. c(1, 0) = d(Application.Proper(c.Value))
  9. Next
  10. End Sub
複製代碼
B1.rar (7.6 KB)

TOP

Dear Eddy,
請問〞8-WeekToNum〞是什麼意義?為什麼用8減?
WeekToNum是什麼意義?

Dear Hsieh & hugh
非常感謝指導,確實沒有定義凖則。
週次定義從星期一開始
2011/1/1 定義為第一週(不管1/1是星期幾)
201101代表2011年第一週
以上設定是否符合資料規格

謝謝
100 字節以內
不支持自定義 Discuz! 代碼

TOP

Hsieh 大大~ 說的是真理~

因為一年52.142.....週~
每個人使用計算的第一週的方式會不一樣~   (每個人判讀第一週的方式不一樣)
如 1/1是在星期一 就簡單多了~ 就是當年的第一週
   若 1/1是在星期六 ,則有些會從1/3星期一 當成當年的第一週~

這種細節就需要定義清楚~  會比較好楚理~

之前幫教授輔導公司時~ 跟同學也有遇到這個問題~
就請公司定義清楚計算第一週的準則~ 就會很好處理~  (那時同學用DELPHI撰寫)
學習才能提升自己

TOP

回復 5# b9208

1103
要判讀為2011年第三週
請問1911年第三週怎樣表示?
EXCEL最怕的就是不遵守資料規格
學海無涯_不恥下問

TOP

樓主
不知道亂寫的是不是符合你的需求
B1.rar (5.81 KB)

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題