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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)ขอบคุณมาก ๆ ครับผมmenem wrote:ลองป้อนสูตรใน F3 (ผลคำตอบจะเป็น 3.5)
=AVERAGE(INDIRECT("'Sheet2'!"&SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN()),"$1",""),"$","")&MATCH($D3,Sheet2!$D:$D,0)),INDIRECT("'Sheet3'!"&SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN()),"$1",""),"$","")&MATCH($D3,Sheet3!$D:$D,0)),INDIRECT("'Sheet4'!"&SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN()),"$1",""),"$","")&MATCH($D3,Sheet4!$D:$D,0)))
ถ้าในทุก Sheet ไม่มีข้อมูล จะเป็น Error เดิมนะครับ
รบกวนพี่อีกนิดครับผมแล้วถ้าที่ Sheet 3,4 ไม่มี ID ที่ตรงกับ Sheet 2 ก็จะไม่แสดงผลลัพธ์ที่ Sheet 1 ครับถ้าจะให้แสดงโดยไม่ต้องใส่ ID ให้ครบทุก Sheet จะต้องทำอย่างไรครับผม โดยที่สมมุติ ID ที่ 6 ประเมินแค่ที่ Sheet 2 Sheet เดียวถ้าแบบนี้คะแนนก็จะไม่ขึ้นที่ Sheet 1 ใช่ไหมครับแล้วถ้าจะให้ขึ้นต้องแก้ไขสูตรตรงไหนหรอครับแนะนำทีครับผม ขอบคุณมากครับSackKii wrote:ขอบคุณมาก ๆ ครับผมmenem wrote:ลองป้อนสูตรใน F3 (ผลคำตอบจะเป็น 3.5)
=AVERAGE(INDIRECT("'Sheet2'!"&SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN()),"$1",""),"$","")&MATCH($D3,Sheet2!$D:$D,0)),INDIRECT("'Sheet3'!"&SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN()),"$1",""),"$","")&MATCH($D3,Sheet3!$D:$D,0)),INDIRECT("'Sheet4'!"&SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN()),"$1",""),"$","")&MATCH($D3,Sheet4!$D:$D,0)))
ถ้าในทุก Sheet ไม่มีข้อมูล จะเป็น Error เดิมนะครับ
ขออภัยครับparakorn wrote:Topic และ Issue เดียวกัน ไม่ควรโพสหลายกระทู้ครับ ให้โพสถามเรื่อยๆในกระทู้เดิมได้เลยครับ
เพราะเวลามีผู้มาค้นคว้าข้อมูล จะสับสนงุนงง เพราะมีหลายกระทู้เต็มไปหมด
ยากต่อการเข้าใจ และผู้ตอบคำถามสับสน
ไม่รู้ว่า User ติดปัญหาตรงไหน ขอให้ เจาะประเด็น ปัญหาที่พบให้ละเอียด
อธิบายวิธีคำนวณให้ชัดเจน แจ้งตัวอย่างผลลัพท์ที่ผิดพลาด และตัวอย่างผลลัพท์ ที่ถูกต้อง
จะได้แก้ไขได้ถูกจุดครับ
บอร์ดนี้ไม่ละเลยทุกปัญหายินดีที่จะแก้ไขให้เรื่อยๆ เพียงแต่ ทุกท่านก็ต่างมีภารกิจครับ
ขออภัยนะครับผมแต่ไม่ใช่แบบที่ต้องการครับผมผมอยากให้มัน ใส่ค่าที่ Sheet 2 แล้วไปแสดงค่าเฉลี่ยที่ Sheet1 ครับโดยที่ Sheet 3,4 ไม่ต้องไปอ้างอิง ID ครับmenem wrote:เพิ่ม IFERROR เข้าไปได้ครับ แต่มีข้อเสียคือ ถ้ามี Error อะไร ก็จะเป็นค่าว่าง ๆ ซึ่งเราอาจจะไม่ทันเช็คซ้ำว่ามีสิ่งผิดปกติครับ
=IFERROR(AVERAGE(INDIRECT("'Sheet2'!"&SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN()),"$1",""),"$","")&MATCH($D3,Sheet2!$D:$D,0)),INDIRECT("'Sheet3'!"&SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN()),"$1",""),"$","")&MATCH($D3,Sheet3!$D:$D,0)),INDIRECT("'Sheet4'!"&SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN()),"$1",""),"$","")&MATCH($D3,Sheet4!$D:$D,0))),"")
ขอบคุณพี่มากครับผมสุดยอมมากครับmenem wrote:ที่ F3 ลองสูตรนี้ครับ
=IFERROR(AVERAGE(INDIRECT("'Sheet2'!"&SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN()),"$1",""),"$","")&IFERROR(MATCH($D3,Sheet2!$D:$D,0),100000)),INDIRECT("'Sheet3'!"&SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN()),"$1",""),"$","")&IFERROR(MATCH($D3,Sheet3!$D:$D,0),100000)),INDIRECT("'Sheet4'!"&SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN()),"$1",""),"$","")&IFERROR(MATCH($D3,Sheet4!$D:$D,0),100000))),"")
หมายเหตุ : ข้อมูลจะต้องไม่ถึง 100000 นะครับ ถ้าถึง ให้เปลี่ยนเป็นค่าอื่น เพราะ
ใช้หลักการว่า หากหา ID ไม่เจอ ให้อางอิงจากบรรทัด 100000 มาใช้แทน