กรอกแบบฟอร์มด้วยข้อมูลจากตาราง

การกำหนดปัญหา

เรามีฐานข้อมูล (รายการ, ตาราง – เรียกว่าสิ่งที่คุณต้องการ) พร้อมข้อมูลเกี่ยวกับการชำระเงินบนแผ่นงาน ข้อมูล:

งาน: พิมพ์ใบเสร็จรับเงินอย่างรวดเร็ว (การชำระเงิน ใบแจ้งหนี้ …) สำหรับรายการที่ต้องการที่เลือกจากรายการนี้ ไป!

ขั้นตอนที่ 1. สร้างแบบฟอร์ม

ในหนังสืออีกแผ่นหนึ่ง (ให้เรียกแผ่นนี้ว่า ฟอร์ม) สร้างแบบฟอร์มเปล่า คุณสามารถทำได้ด้วยตัวเอง คุณสามารถใช้แบบฟอร์มสำเร็จรูป เช่น จากเว็บไซต์ของนิตยสาร Chief Accountant หรือเว็บไซต์ของ Microsoft ฉันได้รับสิ่งนี้:

กรอกแบบฟอร์มด้วยข้อมูลจากตาราง

ในเซลล์ว่าง (บัญชี จำนวนเงินที่ได้รับจาก ฯลฯ) จะได้รับข้อมูลจากตารางการชำระเงินจากแผ่นงานอื่น - อีกสักครู่เราจะจัดการกับสิ่งนี้

ขั้นตอนที่ 2: การเตรียมตารางการชำระเงิน

ก่อนที่จะนำข้อมูลจากตารางมาสู่แบบฟอร์มของเรา ตารางจะต้องมีการปรับปรุงให้ทันสมัยขึ้นเล็กน้อย กล่าวคือ แทรกคอลัมน์ว่างทางด้านซ้ายของตาราง เราจะใช้เพื่อป้อนป้ายกำกับ (ปล่อยให้เป็นตัวอักษรภาษาอังกฤษ "x") ตรงข้ามกับบรรทัดที่เราต้องการเพิ่มข้อมูลลงในแบบฟอร์ม:

ขั้นตอนที่ 3 เชื่อมโยงตารางและแบบฟอร์ม

สำหรับการสื่อสาร เราใช้ฟังก์ชัน VPR(วีลุคอัพ) - คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่นี่ ในกรณีของเรา ในการใส่หมายเลขการชำระเงินที่มีเครื่องหมาย "x" จากแผ่นข้อมูลลงในเซลล์ F9 บนแบบฟอร์ม คุณต้องป้อนสูตรต่อไปนี้ในเซลล์ F9:

=VLOOKUP(“x”,ข้อมูล!A2:G16)

=VLOOKUP(“x”;ข้อมูล!B2:G16;2;0)

เหล่านั้น. แปลเป็น "เข้าใจได้" ฟังก์ชันควรพบในช่วง A2: G16 บนแผ่นข้อมูล บรรทัดที่ขึ้นต้นด้วยอักขระ "x" และให้เนื้อหาของคอลัมน์ที่สองของบรรทัดนี้แก่เรา เช่น หมายเลขการชำระเงิน

เซลล์อื่นๆ ทั้งหมดในแบบฟอร์มจะถูกเติมในลักษณะเดียวกัน – เฉพาะหมายเลขคอลัมน์เท่านั้นที่เปลี่ยนแปลงในสูตร

เพื่อแสดงจำนวนเป็นคำ ฉันใช้ฟังก์ชัน ของตนเอง จากโปรแกรมเสริม PLEX

ผลลัพธ์ควรเป็นดังนี้:

กรอกแบบฟอร์มด้วยข้อมูลจากตาราง

ขั้นตอนที่ 4. เพื่อไม่ให้มี “x” สองตัว …

หากผู้ใช้ป้อน "x" กับหลายบรรทัด ฟังก์ชัน VLOOKUP จะใช้เฉพาะค่าแรกที่พบเท่านั้น เพื่อหลีกเลี่ยงความกำกวมดังกล่าว ให้คลิกขวาที่แท็บแผ่นงาน ข้อมูล แล้วก็ ข้อความที่มา (รหัสแหล่งที่มา). ในหน้าต่างตัวแก้ไข Visual Basic ที่ปรากฏขึ้น ให้คัดลอกโค้ดต่อไปนี้:

Private Sub Worksheet_Change (ByVal Target As Range) Dim r As Long Dim str As String ถ้า Target.Count > 1 จากนั้นออกจาก Sub ถ้า Target.Column = 1 จากนั้น str = Target.Value Application.EnableEvents = False r = Cells(Rows.Count , 2).End(xlUp).Row Range("A2:A" & r).ClearContents Target.Value = str End If Application.EnableEvents = True End Sub  

มาโครนี้ป้องกันไม่ให้ผู้ใช้ป้อน "x" มากกว่าหนึ่งตัวในคอลัมน์แรก

แค่นั้นแหละ! สนุก!

  • การใช้ฟังก์ชัน VLOOKUP เพื่อแทนที่ค่า
  • เวอร์ชันปรับปรุงของฟังก์ชัน VLOOKUP
  • จำนวนเป็นคำ (ฟังก์ชัน Propis) จากโปรแกรมเสริม PLEX

 

เขียนความเห็น