Page 1 of 1

ใช้สูตร IF ดึกขัอมูลจาก Sheet อื่นมาโชว์

Posted: Mon Sep 18, 2017 3:00 pm
by peepoman
คือผมต้องการสร้าง Sheet ค้นหาข้อมูลครับ

ตัวอย่าง สมมุติผมมีซีท แรกซื่อว่า Data ครับ และซีทที่ 2 มีซื่อว่า "นาย A" ซีทที่ 3 มีซื่อว่า "นาย B"

ถ้าผมต้องการให้สูตร IF(A1="ซื่อ Sheet โดยใช้การกรองข้อมูลจากเราหรือทำ Drop Down box","ให้โชว์ข้อมูลของ A2 ในซื่อ Sheet ที่เราพิมพ์ไว้ใน A1,"")

แบบนี้ใช้สูตรต้องทำยังไงครับ แล้วใช้สูตรนี้ถือว่าเหมาะสมไหมครับ
ขอบคุณมากครับ

Re: ใช้สูตร IF ดึกขัอมูลจาก Sheet อื่นมาโชว์

Posted: Mon Sep 18, 2017 6:08 pm
by snasui
:D กรุณาแนบไฟล์ตัวอย่างประกอบ ชี้ให้เห็นว่าข้อมูลเป็นอย่างไร ต้องการคำตอบเป็นอย่างไร จะได้สะดวกในการทำความเข้าใจครับ

Re: ใช้สูตร IF ดึกขัอมูลจาก Sheet อื่นมาโชว์

Posted: Mon Sep 18, 2017 7:18 pm
by peepoman
จะเป็นลักษณะนี้ครับ คือ ให้หน้าแรกโชว์ ข้อมูลตาม sheet ลูกค้าถ้า เราเปลี่ยนเป็น ลูกค้า นาย A ก็ให้ โชว์ของ นาย A ครับ แต่ถ้าเลือกเป็น นาย B ให้โชว์เป็นของ นาย B ครับ

Re: ใช้สูตร IF ดึกขัอมูลจาก Sheet อื่นมาโชว์

Posted: Mon Sep 18, 2017 7:58 pm
by snasui
:D ตัวอย่างสูตรครับ

ที่ชีต Search เซลล์ A5 คีย์

=OFFSET(INDIRECT("'"&$B$1&"'!a5"),ROWS(A$5:A5)-1,COLUMNS($A5:A5)-1)

Enter > Copy ไปด้านขวาและลงด้านล่าง

Re: ใช้สูตร IF ดึกขัอมูลจาก Sheet อื่นมาโชว์

Posted: Tue Sep 19, 2017 9:06 pm
by peepoman
ได้แล้วครับผม

ขอบคุณมากครับ

รบกวนถามเพิ่มเติมครับ พอดีผมไม่เคยใช้เจ้าสูตร offset และ indirect เลยครับ แต่ที่สงสัยที่สุดคือในสูตร
INDIRECT("'"&$B$1&"'!a5")
ตรง ที่เขียนว่า (" ' "& ......... &" ' !a5")
1. เครื่องหมาย " ' " ก่อน & แทนความหมายว่าอะไรครับ
2. " ' !a5" แทนความหมายว่าอะไรครับ
ขอบคุณมากครับ

Re: ใช้สูตร IF ดึกขัอมูลจาก Sheet อื่นมาโชว์

Posted: Wed Sep 20, 2017 9:15 am
by logic
ขออธิบายตามที่พอรู้มาครับ :)

ข้อ 1 ใช้ครอบชื่อชีต สังเกตเวลาเราอ้างชีตในสูตรที่คีย์แบบมีตัวเลขปน มีวรรคปนโปรแกรมจะแปลงให้มีเครื่องหมาย ' ' ครอบชื่อชีตอัตโนมัติ เข้าใจว่าอาจารย์เขียนดักไว้ล่วงหน้า
ข้อ 2 เป็นตำแหน่งเซลล์

Re: ใช้สูตร IF ดึกขัอมูลจาก Sheet อื่นมาโชว์

Posted: Wed Sep 20, 2017 8:05 pm
by peepoman
logic wrote:ขออธิบายตามที่พอรู้มาครับ :)

ข้อ 1 ใช้ครอบชื่อชีต สังเกตเวลาเราอ้างชีตในสูตรที่คีย์แบบมีตัวเลขปน มีวรรคปนโปรแกรมจะแปลงให้มีเครื่องหมาย ' ' ครอบชื่อชีตอัตโนมัติ เข้าใจว่าอาจารย์เขียนดักไว้ล่วงหน้า
ข้อ 2 เป็นตำแหน่งเซลล์
พอเข้าใจแล้วครับ ขอบคุณมากครับ

ผมมีคำถามเพิ่มเติมครับ

1. ที่อาจารย์ใช้ สูตร =OFFSET(INDIRECT("'"&$B$1&"'!a5"),ROWS(A$5:A5)-1,COLUMNS($A5:A5)-1) เพราะว่าในสูตร INDIRECT นั้นมันไม่สามารถลาก copy แล้วให้เปลี่ยนเป็นเซลถัดไปตามที่เรา copy ใช่ไหมครับ เพราะจริงๆ แล้วผมสามารถใช้สูตร =INDIRECT("'"&$B$1&"'!a5" ใน cell A5 ได้เลย เพียงแต่ว่าเวลาลากแล้วมันไม่เปลี่ยนเป็น A6 A7 ตามใช่ไหมครับ

2. ทำไมในสูตร offset ที่ใช้ช่วงระหว่าง ROWS(A$5:A5)-1 ต้องมี -1 ครับเพราะอะไรครับ

Re: ใช้สูตร IF ดึกขัอมูลจาก Sheet อื่นมาโชว์

Posted: Wed Sep 20, 2017 8:16 pm
by peepoman
ขอสอบถามเพิ่มเติมครับ ในกรณีสลับกันครับ ถ้าสมมุติว่าผมกรอกข้อมูลจาก Sheet แรกโดยซื่อร้าน และให้ข้อมูลใน Row นั้นทั้งหมดไปบันทึกลงใน Sheet ของซื่อร้านนั้นๆ เลยแบบนี้ต้องใช้สูตรแบบไหนครับ

Re: ใช้สูตร IF ดึกขัอมูลจาก Sheet อื่นมาโชว์

Posted: Thu Sep 21, 2017 5:41 am
by snasui
peepoman wrote:ผมมีคำถามเพิ่มเติมครับ

1. ที่อาจารย์ใช้ สูตร =OFFSET(INDIRECT("'"&$B$1&"'!a5"),ROWS(A$5:A5)-1,COLUMNS($A5:A5)-1) เพราะว่าในสูตร INDIRECT นั้นมันไม่สามารถลาก copy แล้วให้เปลี่ยนเป็นเซลถัดไปตามที่เรา copy ใช่ไหมครับ เพราะจริงๆ แล้วผมสามารถใช้สูตร =INDIRECT("'"&$B$1&"'!a5" ใน cell A5 ได้เลย เพียงแต่ว่าเวลาลากแล้วมันไม่เปลี่ยนเป็น A6 A7 ตามใช่ไหมครับ

2. ทำไมในสูตร offset ที่ใช้ช่วงระหว่าง ROWS(A$5:A5)-1 ต้องมี -1 ครับเพราะอะไรครับ
:D ข้อ 1 เข้าใจถูกต้องแล้วครับ
ข้อ 2 เป็นลักษณะการใช้งานของฟังก์ชั่น Offset โดยมีไวยากรณ์คือ =offset(reference,rows,cols,height,width)

ตรง rows เป็นจำนวนบรรทัดที่ห่างจาก reference และ cols จะเป็นจำนวนคอลัมน์ที่เริ่มจาก reference ซึ่งทั้งสองตำแหน่งจะเริ่มจาก 0

ROWS(A$5:A5) คือจำนวนบรรทัดในช่วง A5:A5 มีค่าเท่ากับ 1 จึงต้องหักออกด้วย 1 เพื่อให้เป็น 0

ศึกษา Offset จาก VDO ด้านล่างครับ


peepoman wrote:ขอสอบถามเพิ่มเติมครับ ในกรณีสลับกันครับ ถ้าสมมุติว่าผมกรอกข้อมูลจาก Sheet แรกโดยซื่อร้าน และให้ข้อมูลใน Row นั้นทั้งหมดไปบันทึกลงใน Sheet ของซื่อร้านนั้นๆ เลยแบบนี้ต้องใช้สูตรแบบไหนครับ
ศึกษางานลักษณะนี้ได้จาก Link นี้ครับ