ปรุงก่อนชิม
Location :
นนทบุรี Thailand

[Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 4 คน [?]




New Comments
Group Blog
 
All Blogs
 
Friends' blogs
[Add ปรุงก่อนชิม's blog to your web]
Links
 

 

ตัวอย่างการใช้ Timer ให้ excel ทำงานทุกๆ ช่วงเวลา





 

Create Date : 24 กรกฎาคม 2558    
Last Update : 24 กรกฎาคม 2558 9:49:48 น.
Counter : 498 Pageviews.  

Days360 / Dayc

Days360 Function  จะคิดทุกเดือนเป็น 30 วันเท้ากันหมด

Function  dayc เป็นฟังก์ชั่นที่ผมสร้างเอง ซึ่งจะพิจารณาวันในแต่ละเดือน และ เดือนกุมภาพันธ์ที่มี 28 ,29 วันด้วย ตามด้าน code ล่าง ต้องก่อนใช้งานต้องติดตั้งก่อน

ปล. ผมทดสอบไว้ระดับหนึ่ง แต่เนื่องจากเวลาไม่ค่อยมีเวลาตรวจทาน หากพบผิดพลาดแจ้งได้ครับ


ผมเขียน function ที่ใช้แทน Days360 ของ excel
ชื่อ dayc()
เวลาใช้ก็ใส่ วันที่แรก กับวันที่สุดท้าย คล้ายๆ Days360
ตัวอย่าง 
=dayc("1/1/2000","31/12/2001")


Option Explicit

Function dayc(Day1 As String, Day2 As String) As Double
Dim X, Y As Integer
'---------------------------------------------------------------------------------------------------
Dim endd As Integer
Dim m(12) As Integer
Dim arrayDay(366) As String
Dim arrayDay2(366) As String
Dim xDate As String
Dim i, j As Integer
'Dim s, t As Integer
Dim A As Integer

Dim n_First As Integer
Dim n_Last As Integer
Dim n_Mid As Integer
'--------------------------------------------------------------------------------------------------- prepare value for arrayDay(1-366)
A = 0
xDate = Day1
        If Year(xDate) Mod 4 = 0 Then
            endd = 366
            m(2) = 29
        Else
            endd = 365
            m(2) = 28
        End If
m(1) = 31: m(3) = 31: m(4) = 30: m(5) = 31: m(6) = 30: m(7) = 31: m(8) = 31: m(9) = 30: m(10) = 31: m(11) = 30: m(12) = 31
For i = 1 To 12
        For j = 1 To m(i)
            A = A + 1
           arrayDay(A) = j & "-" & i
        Next j
Next i
'---------------------------------------------------------------------------------------------------prepare value for arrayDay2(1-366)
A = 0
xDate = Day2
        If Year(xDate) Mod 4 = 0 Then
            endd = 366
            m(2) = 29
        Else
            endd = 365
            m(2) = 28
        End If
m(1) = 31: m(3) = 31: m(4) = 30: m(5) = 31: m(6) = 30: m(7) = 31: m(8) = 31: m(9) = 30: m(10) = 31: m(11) = 30: m(12) = 31
For i = 1 To 12
        For j = 1 To m(i)
            A = A + 1
            arrayDay2(A) = j & "-" & i
        Next j
Next i

'---------------------------------------------------------------------------------------------------

        If Year(Day1) = Year(Day2) Then  '-- same year
                If Month(Day1) = Month(Day2) Then  '-- same month
                            dayc = Day(Day2) - Day(Day1)
                ElseIf Month(Day1) < Month(Day2) Then  '-- not same month
                            For i = 1 To endd
                                   If arrayDay(i) = Day(Day1) & "-" & Month(Day1) Then
                                         X = i: Exit For
                                   End If
                            Next i
                            For i = 1 To endd
                                   If arrayDay2(i) = Day(Day2) & "-" & Month(Day2) Then
                                         Y = i: Exit For
                                   End If
                            Next i
                            dayc = Y - X
                Else
                    dayc = -0
                End If

        ElseIf Year(Day2) - Year(Day1) > 1 Then '-- corss over to more then 1 year
                '----------verify first Year (between Day1  -  31/Dec/year(Day1))
               n_First = 0
               If Year(Day1) Mod 4 = 0 Then
                    endd = 366
                Else
                    endd = 365
                End If
                            For i = 1 To endd
                                   If arrayDay(i) = Day(Day1) & "-" & Month(Day1) Then
                                         Y = i: Exit For
                                   End If
                            Next i
                                   n_First = endd - Y
                '----------verify last Year (between 1/Jan/year(Day2)  -  Day2)
                n_Last = 0
                Y = 0
                If Year(Day2) Mod 4 = 0 Then
                    endd = 366
                Else
                    endd = 365
                End If
                            For i = 1 To endd
                                   If arrayDay2(i) = Day(Day2) & "-" & Month(Day2) Then
                                         Y = i: Exit For
                                   End If
                            Next i
                                   n_Last = Y
                '----------verify the full Year (between first year - last year)
                n_Mid = 0
                For i = 1 To (Year(Day2) - Year(Day1)) - 1
                        If (Year(Day1) + i) Mod 4 = 0 Then
                                n_Mid = n_Mid + 366
                        Else
                                n_Mid = n_Mid + 365
                        End If
                Next i
                '----------sum together
                'dayc = n_First
                'dayc = n_Last
               'dayc = n_Mid
               dayc = n_First + n_Last + n_Mid
        ElseIf Year(Day2) - Year(Day1) = 1 Then '-- corss over to   next year
                '----------verify first Year (between Day1  -  31/Dec/year(Day1))
               n_First = 0
               If Year(Day1) Mod 4 = 0 Then
                    endd = 366
                Else
                    endd = 365
                End If
                            For i = 1 To endd
                                   If arrayDay(i) = Day(Day1) & "-" & Month(Day1) Then
                                         Y = i: Exit For
                                   End If
                            Next i
                                   n_First = endd - Y
                '----------verify last Year (between 1/Jan/year(Day2)  -  Day2)
                n_Last = 0
                Y = 0
                If Year(Day2) Mod 4 = 0 Then
                    endd = 366
                Else
                    endd = 365
                End If
                            For i = 1 To endd
                                   If arrayDay2(i) = Day(Day2) & "-" & Month(Day2) Then
                                         Y = i: Exit For
                                   End If
                            Next i
                                   n_Last = Y
                '----------sum together
                'dayc = n_First
                'dayc = n_Last
               dayc = n_First + n_Last
        Else
                dayc = -0
        End If

End Function




 

Create Date : 27 พฤษภาคม 2558    
Last Update : 27 พฤษภาคม 2558 9:01:08 น.
Counter : 329 Pageviews.  

การสุ่มรายชื่อ ด้วย Excel

  load excel

https://drive.google.com/file/d/0BxZUT0L1t9BFWkpCelc1dW9VQWM/edit?usp=sharing


Manual
https://drive.google.com/file/d/0BxZUT0L1t9BFV1NYVFF5Zk5aQms/edit?usp=sharing




 

Create Date : 07 กรกฎาคม 2557    
Last Update : 14 มกราคม 2558 11:16:59 น.
Counter : 634 Pageviews.  

excel นับคะแนน เลือกตั้ง



โหลดไฟล์




 

Create Date : 14 กุมภาพันธ์ 2557    
Last Update : 14 กุมภาพันธ์ 2557 13:54:51 น.
Counter : 655 Pageviews.  

เลือกรูปภาพ มาแสดง ( excel )



ลักษณะงาน
มี 2 รูปภาพ ต้องการกำหนดให้รูปภาพดังกล่าวมาแสดงในตำแหน่งที่ต้องการ
วิธีการทำ
1. วางรูปภาพทั้ง 2 ใน cell ในที่นี้กำหนดเป็น Cell A2 กับ B2  (ต้องเป็นภาพเท่านั้น เป็น object ที่ insert จาก MS-office ไม่ได้)
2. ตั้งชื่อให้ cell ทั้ง 2 เป็น picA และ picB 
3. กำหนด cell ที่ใช้เป็นตัวเลือก ในที่นี้กำหนดเป็น Cell B6 (ปกติจะใช้ data validation เป็น drop down list)
4. กำหนดตำแหน่ง cell ที่จะแสดงภาพที่ได้เลือกตามข้อ 3 ในที่นี้กำหนดเป็น Cell B8 แล้วสร้างชื่อให้ cell ว่า selectPic ตรง refer to กำหนดเป็น =INDIRECT(sheet1!$b$6)  [ ตามข้อ 3 ]
5. copy ภาพจากข้อ 1 มาวางที่ cell B8 ตามข้อ 4 จากนั้นคลิกที่รูปภาพดังกล่าวไว้ แล้วไปคลิกที่ช่องพิมพ์สูตร พิมพ์สูตร
=selectPic เป็นการสร้างสูตรลิงค์ให้ภาพเชื่อมโยงไปยังค่าของcell B6
6. ทดลองเปลี่ยนค่าใน cell B6 ระหว่าง picA และ picB ภาพที่แสดงด้านล่างจะเปลี่ยนตาม









 

Create Date : 06 กุมภาพันธ์ 2557    
Last Update : 19 ตุลาคม 2559 12:54:20 น.
Counter : 1407 Pageviews.  

1  2  3  4  
 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.