
โจทย์วันนี้คือ ปรับรายงานเป็นฐานข้อมูล ด้วยVBA …
🔸 มีรายงานการคีย์ยอดขายของเซลล์เข้ามา
🔸 ข้อมูลเป็นข้อมูลรายวันเรียงในแนวคอลัมน์
🔸 ต้องการปรับตารางให้เป็นรูปแบบฐานข้อมูล
🔸 โดยดึงมาเฉพาะวันที่มียอดขาย ถ้าไม่มียอดขายไม่ต้องเอามา
😅 แต่ปัญหาคือ…นั่งก้อปปี้ทีละรายการคงไม่ไหว
จะเขียนสูตรก็น่าจะยาก…
😇 งานแบบนี้ เขียน VBA ง่ายมาก ๆ
📍 วิธีคิดคือ…
1) Loop 2 ชั้น ไปที่พื้นที่ของตัวเลขเลย
2) กำหนด ตัวแปร 2 ตัว รับค่าบรรทัด และคอลัมน์
3) ใช้ If Statement ตรวจสอบดูว่าค่าใน Cell มากกว่า 0 หรือไม่
4) ถ้ามากกว่าก็ เอารหัสเซลล์ ที่อยู่คอลัมน์ A และ รายการสินค้าในคอลัมน์ B ไปวางที่ชีทฐานข้อมูลที่เตรียมไว้
5) ส่วนวันที่ ก็ เอาวันที่ที่อยู่ในบรรทัดที่3 ณ คอลัมน์ที่ j ที่ loop อยู่
6) ค่าที่เอาไปกรอก ก็จะเป็นค่าที่อยู่ที่ตำแหน่ง cells(i,j)
เท่านี้ก็จะได้ค่าทั้งหมดกรอกลงฐานข้อมูลเรียบร้อย
** ใช้เวลา รันโค้ด ไม่ถึง 1 วินาที **
ลองเขียนกันดูครับ
Sub UnPivotData()
Dim i As Long, j As Long, myTargetRow As Long
For i = 4 To 34 For j = 3 To 32 If Cells(i, j).Value > 0 Then myTargetRow = Sheet2.Range("A" & Rows.Count).End(xlUp).Row + 1 Sheet2.Range("A" & myTargetRow).Value = Range("A" & i).Value Sheet2.Range("B" & myTargetRow).Value = Range("B" & i).Value Sheet2.Range("C" & myTargetRow).Value = Cells(3, j).Value Sheet2.Range("D" & myTargetRow).Value = Cells(i, j).Value End If Next j Next i MsgBox " F I N I S H "
End Sub
🔸 การเขียนโค้ด จริง ๆ แล้วมันไม่ได้พิศดารอะไรครับ
เพียงมีพื้นฐานที่ถูกต้อง เพียงพอ ก็สามารถทำงานได้สารพัด แล้วครับ
ลองดูครับ…
มาติดตามดูกันว่า VBA มันจะมีอะไรน่าสนใจ มาช่วยชีวิตเราได้บ้าง ครับ
👉 #สนใจเรียนVBAกับผม สำหรับผู้ที่จริงจัง
อยากเรียน VBA เพื่อเอาไปใช้งาน
รีบสมัครเลยนะครับ https://excelchannel.com/product/p-course-excel-vba/
👉 ไม่ว่าคุณจะเป็นคนที่อยากหนีตายเพราะเบื่องาน Excel แบบถึก ๆ หรือ เป็นคนที่มุ่งมั่น อยากพัฒนา ยกระดับความสามารถ ขีดมาตรฐานใหม่ให้กับงานของตัวเอง #มาเจอกันครับ
🔸 ปูพื้นฐานการเขียนโค้ด VBA ตั้งแต่เริ่ม
🔸 ไม่ต้องมีพื้นฐาน Coding มาก็เรียนรู้เรื่อง และเขียนโค้ดเองได้
🔸 ไม่ใช่การบันทึก macro แล้วปรับ ๆ แก้ ๆ แต่เรียนเขียนโค้ด VBA จริง ๆ
🔸 เรียนจบ รับเข้ากลุ่มปิด Facebook เพื่อสอบถามเรียนรู้เพิ่มเติม สามารถเรียนย้อนหลังได้ตลอด
👉 ติดต่อสอบถามเนื้อหาเพิ่มเติม หรือสมัครได้ที่ลิงค์นี้ m.me/excelbypichart หรือ โทร. 099-084-2562 / 082-663-9949
————//————
อ.ชาติ
Learn Excel With Pichart
Smart Excel For Better LIFE