Home
Auto Report Toolkit : เทคนิคการอ้างอิงตำแหน่งเซลล์ และใช้สูตรวางในเซลล์ตามจำนวนข้อมูลที่คาดการณ์ไม่ได้ PDF Print E-mail
Written by Administrator   
Monday, 20 September 2021 11:45

ดาวน์โหลดAuto Report Toolkit ได้จากลิงค์ใต้VDO DescriptionของVDOนี้ โดยในเวอร์ชั่น 5 จะมีฟีเจอร์เพิ่มเข้ามาคือ

  • มีการสร้างHeaderจากแต่ละQueryอัตโนมัติ ดังนั้นข้อมูลจะอยู่ในแถวถัดไปเป็นต้นไป
  • แสดงจำนวนผลลัพธ์ของแต่ละะQuery ในSheet2ของReport Toolkit

ทำให้อ้างอิงในสูตรต่างๆที่ต้องการนำจำนวนแถวข้อมูลไปใช้ประโยชน์ได้ ยกตัวอย่างเช่น เมื่อต้องการระบุตำแหน่งเริ่มวางข้อมูลของQuery2ในชีตเดียวกับQuery1โดยให้วางต่อจากแถวของQuery1 เราก็สามารถอ่างอิงตามรูป จากรูปล่างในAuto Report Toolkitมีการกำหนดให้ผลลัพธ์Query2เริ่มวางในเทมเพลต ณ เซลล์แถวที่104ซึ่งตัวเลข104มาจากสูตร =(Sheet2!B2)+2+I7 โดยSheet2!B2ก็คือจำนวนผลลัพธ์ของQuery1ที่Report Tool คำนวนให้อัตโนมัติและอยู่ในหน้าSheet2ของAuto Report Toolkit และในสูตรดังกล่าวก็ใช้ตำแหน่งเริ่มต้นของQuery1ก็คือค่าจากI7(จากรูปกำหนดQ1เริ่มที่แถว2)มาอ้างอิงและบวกอีก2เพื่อวางถัดไป2แถว(ก็คือเว้น1แถว) เพื่อให้ข้อมูลQ2ต่อถัดจากข้อมูลQ1 เว้นห่างกัน 1 บรรทัด

จะได้ผลลัพธ์ในReportที่สร้างออกมาดังรูปล่าง นั่นคือแทนที่จะกำหนดตำแหน่งเริ่มข้อมูลเป็นตัวเลขตายตัว ก็สามารถใช้สูตรในการอ้างอิงแทนได้ ช่วยให้เริ่มวางข้อมูลได้ยืดหยุ่นตามจำนวนแถวที่เราคาดการณ์จำนวนไม่ได้ โดยAuto Report Toolkitจะคำนวนจำนวนแถวให้อัตโนมัติจากแต่ละQueryในตอนที่Report Toolทำงานเท่านั้น ดังนั้นในขั้นตอนการคอนฟิกสร้างReportเราไม่ต้องสนใจว่ายังไม่มีค่าคำนวนออกมา ให้อ้างอิงจำนวนข้อมูลจากชีตนี้ของReport Toolตามต้องการได้เลย และสามารถใช้เทคนิคนี้ในChartหรืออ็อปเจ็คอื่นๆได้ในทำนองเดียวกัน

  • ระบบวางสูตรExpressionในตำแหน่งเซลล์ที่ต้องการอัตโนมัติ พร้อมใส่Formatตามเซลล์ต้นแบบ

ในชีต2ของReport Toolkitสามารถกำหนดสูตรเพื่อวางลงในเซลล์ของReportอัตโนมัติได้ ตัวอย่างรูปล่างมีการกำหนดสูตร SUM(B3:B102)เพื่อวางในSheet1ของเทมเพลตReportตรงเซลล์B103และใส่Formatตามเซลล์F1ของไฟล์Report(ซึ่งในเซลล์F1นั้นอาจไม่ได้มีFormatอะไรก็ได้ครับ แค่ใส่ไว้ไม่ให้ว่างไว้ในตารางนี้ก็พอ) สังเกตุว่าเซลล์D3ที่มีสูตรSUM(B3:B102)นี้เราใช้สูตรอ้างอิงจากจำนวนแถวของผลลัพธ์จากQuery1ก็คือจากB2แล้วบวกไปอีก2แถวเนื่องจากQuery1เริ่มต้นที่ตำแหน่งrow=2 เพื่อให้ได้Summaryของข้อมูลทั้งหมด

สูตร =”SUM(B3″ & “:B” & B2+2 & “)” นี้มีที่มาจาก

ต้องการคำนวนSummaryเริ่มจากเซลล์ B3 (เนื่องจากQuery1เริ่มวางข้อมูลที่Row=2 แต่แถวแรกเป็นHeaderจึงต้องเริ่มคำนวนที่แถวที่3ก็คือB3 (ส่วนทำไมเป็น B ก็เพราะคอลัมน์ A เป็นข้อมูลวันเดือนปี ผู้เขียนจึงใช้คอลัมน์ถัดไปคือBซึ่งเป็นตัวเลขครับ อันนี้แล้วแต่ความต้องการและรูปแบบQueryของแต่ละคนเลยครับ)

ส่วนแถวสุดท้ายของการคำนวนSummaryก็ให้อ้างอิงจากจำนวนผลลัพธ์ของQueryว่ามีกี่แถวและตำแหน่งที่เริ่มวาง จากรูปบน Query1(Q1)มีจำนวนผลลัพธ์โดยไม่รวมHeaderคือ100แถว และจากรูปที่2เริ่มวางที่Row=2(เริ่มวางHeaderที่แถว2คอลัมน์1) เมื่อวางข้อมูลครบ ข้อมูลสุดท้ายจึงอยู่ที่Rowที่102ตามรูปที่3 ผู้เขียนจึงใช้ “:B” & B2+2 มาเป็นส่วนหนึ่งคือเอาค่าจาก B2 (รูปบน) คือค่าของจำนวนแถวผลลัพธ์Q1มาบวก2(ตำแหน่งเริ่มต้น)เพื่อให้Summaryครอบคลุมข้อมูลทั้งหมดของคอลัมน์B จาก B3ถึงB102 ก็จะได้ค่าSummaryตอนที่Reportทำงานได้เป็น 877433

ฟีเจอร์นี้ทำให้เราไม่ต้องใส่สูตรในเซลล์ไว้ก่อน เพราะเราอาจไม่รู้ว่าผลลัพธ์จะมีกี่แถว สูตรที่จะใช้ต้องทำให้อยู่ในรูปแบบString คือเดิมทีเวลาเราใช้สูตร SUMก็จะพิมพ์ว่า =SUM(B3:B102) แต่ถ้าจะใช้ในฟีเจอร์นี้ของReport Toolkit เราต้องทำให้อยู่ในรูปแบบStringตามตัวอย่างข้างต้นซึ่งมีหลักการดังนี้

  • Expressionจะชึ้นต้นด้วย = และตามด้วยString
  • Stringจะถูกครอบด้วยเครื่องหมาย ” และ “
  • Stringที่ต้องการต่อกับค่าจากเซลล์ในReport Toolkit ให้ต่อด้วยเครื่องหมาย &
  • String ที่มีเครื่องหมาย ” จะใช้ “” (เครื่องหมายคำพูดต่อกัน 2 ครั้ง)
    เช่นถ้าต้องการแสดงคำว่า Total = ไว้ในเซลล์ของReport เราจะใช้Expressionว่า =”””Total =”””

ตัวอย่างExpression

=”SUM(B3:B102)” คือการคำนวนSummaryโดยระบุตำแหน่งเริ่มตำแหน่งสิ้นสุดของการคำนวนตายตัวตั้งแต่B3ถึงB102

=”SUM(B3″&”:B”&B2+2&”)” คือการคำนวนSummaryในตอนที่Reportทำงานตามคำอธิบายข้างต้น

=”SUM(D”&Sheet1!I14+1&”:D”&Sheet1!I14+B3&”)” คือการคำนวนSummaryโดยอ้างอิงตำแหน่งวางข้อมูลQ2(Sheet1ของReport Toolkitเซลล์I14) เริ่มSUMที่แถวถัดไปของคอลัมน์D(เนื่องจากแถวแรกเป็นHeader)ไปจนถึงDแถวทีมีข้อมูลสุดท้ายของQ2(อ้างอิงตามจำนวนแถวของQ2จากเซลล์B3 – จากรูปที่1ของReport Toolkit)

=”””SUMMARY””” คือการวางคำว่า SUMMARY

=”SUM(C1:C”&B4+1&”)” คือการคำนวน SUMMARYคอลัมน์C1จนถึงCแถวสุดท้ายของQuery Q3 ในทำนองเดียวกัน

ส่วนตำแหน่งการวางสูตรก็สามารถใช้วิธีการอ้างอิงโดยใช้Expressionแทนการระบุแบบตายตัวได้เช่นเดียวกันดังรูปล่าง จากรูปล่างB103ที่จะวางสูตรในSheet1ของเทมเพลตReport ก็ได้มาจากการคำนวนตามExpressionว่า =”B” & B2 + 3 ซึ่งมาจากจำนวนแถวของQ1บวกไปอีก 3 นั่นเอง (เพราะQ1เริ่มที่ Row=2 และเราต้องวางต่อจากแถวสุดท้าย ก็คือวางที่ B103 (ดูรูปที่3เทียบกัน) และใส่รูปแบบฟอร์แมตจากF1(เช่นถ้าในF1ของเทมเพลตมีการใช้ตัวหน้า ตัวเอียง ฟอนต์Angsana สีพื้นหลัง ฯลฯ B103ก็จะได้รูปแบบนั้นด้วย)

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

 

Auto Report Toolkit นี้ช่วยเพิ่มศักยภาพของระบบSCADAในด้านระบบรายงานที่ต้องมีการนำเอกสารไปใช้ในด้านอื่นๆ ช่วยลดต้นทุนและเวลาในการพัฒนา ลูกค้าที่ซื้อGENESIS64 SCADAหรือKepware Manufacturing Suite จากEDA International ตามยอดที่กำหนดสามารถขอAuto Report Toolkitได้จา่กEDA International Ltd.ได้เลยครับ ซึ่งAuto Report Toolkitนี้ไม่ใช่ReportWorX Expressที่ไม่สามารถสร้างReportอัตโนมัติได้ ในขณะที่Auto Report Toolkitทำงานได้อัตโนมัติผ่านTask SchedulerของWindowsได้

 
**สงวนลิขสิทธิ์ทั้งหมด โดย EDA International LTD.
สงวนลิขสิทธิ์ทั้งหมด ทุกข้อความ รูปภาพ งานกราฟฟิค และภาพเคลื่อนไหว ที่ปรากฎอยู่บนหน้าเว็บไซต์ อยู่ภายใต้การสงวนลิขสิทธิ์และได้รับการคุ้มครองตามกฎหมาย ไม่อนุญาต ให้ทำซ้ำ คัดลอก ดัดแปลง ส่วนหนึ่งส่วนใดหรือทั้งหมด โดยมิได้รับอนุญาตเป็นลายลักษณ์อักษรจากบริษัทฯ