EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)ใหใช้การ Protect Sheet เข้ามาช่วย จากตัวอย่างนี้ เลือกเซลล์ A2, A4, A5, C5 และหัวข้ออื่นๆ > คลิกขวา > Format Cells > เลือก Tab Protect > ปลดเครื่องหมายที่ Locked > OK > คลิกขวาที่ Tab Sheet > Protect Sheet > กรอก Password (หากต้องการ)tong.rs52 wrote:1. ทำอย่างไรให้แก้ไขได้เฉพาะช่องที่เราต้องการ เช่น แท็บข้อมูลส่วนตัว cell A2, A4, A5, C5 และหัวข้ออื่นๆ
การทำเช่นนี้ต้องอาศัย VBA ให้เขียนมาก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบน ติดตรงไหนค่อยถามกันต่อได้เท่าที่ต้องการtong.rs52 wrote:2. ทำอย่างไรให้คลิกที่ cell B5, D5 แล้วสามารถเลือกวันที่ โดยมีปฏิทินขึ้นมาให้คลิก
คลิกเลือกเซลล์ที่ต้องการ > เข้าเมนู Data > Data Validation > Data Validation > ตรง Allow เลือก List > ตรง Source: เลือก Range Name ที่ให้ไว้หรือกรอกข้อมูลตามต้องการtong.rs52 wrote:3. ทำอย่างไรให้ column ซื้อ/ขาย/ได้ปันผล เลือกแบบ drop down list ได้เท่านั้น (column B)
การ Insert Row ปกติ Format จะยังคงอยู่ ที่ผมทดสอบก็ไม่พบว่า Format หายไปแต่อย่างใดครับtong.rs52 wrote:4. ทำอย่างไรให้ insert row ใหม่ได้ แต่ format ในแต่ละ cell ยังคงอยู่ (ตัวอย่าง insert row 12 แต่ format จาก row 1-11 หายไป) และใน cell H13-J13 สามารถคำนวณ สูตร row 12 ได้ทันทีโดยไม่ต้องแก้ไข (จากตัวอย่าง เมื่อ insert row 12 แล้ว cell H13 สูตรยังเป็น =SUM(H5:H11) อยู่)
สามารถดึงได้ ไม่ทราบว่าดึงค่าใดมาบ้าง ดึงไปไว้ที่ไหน ยกตัวอย่างคำตอบที่ต้องการมาด้วยครับtong.rs52 wrote:5. สามารถดึงข้อมูลจากตาราง "บันทึกการซื้อขายหุ้นประจำวัน" โดยแยกตาม ชื่อย่อหุ้น (column C) ได้หรือไม่ อย่างไร
ข้อนี้ขอคิดเร็ว ๆ ว่าให้ตรวจจับการเปลียนแปลงข้อมูลแล้วตรวจจับการคีย์ค่าในคอลัมน์ D, E, H, J หากเป็นเช่นนั้นต้องใช้ VBA ซึ่งต้องเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับtong.rs52 wrote:6. เมื่อกำหนด column B เป็นซื้อ/ขาย/ได้ปันผล (ด้วย drop down list) แล้ว
6.1 ซื้อ : ให้สามารถใส่จำนวนได้ใน column D, H ได้เท่านั้น
6.2 ขาย : ให้สามารถใส่จำนวนได้ใน column E, J ได้เท่านั้น
6.3 ได้ปันผล : สามารถดึงข้อมูลเงินปันผลจาก "แท็บบันทึกการซื้อขายหุ้นประจำวัน" โดยถูก cell ที่มีการปันผล
Code: Select all
=IFERROR(INDEX(บันทึกการซื้อขายหุ้นประจำวัน!$C$5:$C$1000,SMALL(IF(FREQUENCY(MATCH("~"&บันทึกการซื้อขายหุ้นประจำวัน!$C$5:$C$1000,บันทึกการซื้อขายหุ้นประจำวัน!$C$5:$C$1000&"",0),ROW(บันทึกการซื้อขายหุ้นประจำวัน!$C$5:$C$1000)-ROW(บันทึกการซื้อขายหุ้นประจำวัน!$C$5)+1),ROW(บันทึกการซื้อขายหุ้นประจำวัน!$C$5:$C$1000)-ROW(บันทึกการซื้อขายหุ้นประจำวัน!$C$5)+1),COUNTIF(A$2:A2,A2))),"")
สูตรที่เขียนด้านบน ไม่กระทบกับการเพิ่มลดบรรทัดของชีท "สรุปหุ้นในพอร์ตรายตัว" ครับtong.rs52 wrote:ในตาราง "สรุปหุ้นในพอร์ตรายตัว" ก็มีการเพิ่มข้อมูลด้วยเช่นเดียวกัน (เนื่องจากข้อมูลสัมพันธ์กัน) และถ้ามีการเพิ่มข้อมูลของหุ้น "AAA" ก็จะทำให้ ข้อมูลในตารางเลื่อนลงไปครั้งละ 1 row จะมีผลให้ ข้อมูลของหุ้น "CCC" คลาดเคลื่อนจากเดิมหรือไม่ครับ
! | Note: Ctrl+Shift+Enter หมายถึง
|