Page 1 of 2

วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Thu Oct 17, 2013 3:07 pm
by kanitthw
ต้องการทำข้อมูลให้เป็นดังนี้ค่ะ
ชีทโครงการ ตรง C5 (ที่ใส่ Drop Down เป็นรายชื่อไว้) เมื่อเลือกรายชื่อ เช่น เลือกคุณวุฒิพงษ์ ซึ่งทำงานตรงกับ Item สร้างบ้าน ก็ให้ข้อมูลลิ้งค์ไป
ชีทรายชื่อ ในช่อง B4 ที่เป็นชื่อของคุณวุฒิพงษ์ให้โชว์ ชื่อ Item สร้างบ้าน ไม่ทราบว่าต้องใช้ฟังค์ชั่นอะไรค่ะ

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Thu Oct 17, 2013 5:00 pm
by godman
ผมลองทำโดยใช้สูตร
INDEX(pROJECT,MATCH(A4,NAME,0))

และสร้าง rangemane ชื่อ project และ name ลองดูครับ ไม่รู้ตรงตามความต้องการหรือปล่าว

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Fri Oct 18, 2013 8:13 am
by kanitthw
จากตัวคำตอบที่ส่งมายังไม่ค่อยเข้าใจเลยค่ะ
แต่จะอธิบายความต้องการอีกครั้งน่ะค่ะ
ยกตัวอย่างเช่น หน่วยงาน A มี Project อยู่ 2 งาน และ พนักงานอีก 2 คน และอยากให้ทำไฟล์ขึ้นมาเพื่อต้องการทราบว่า ในแต่ละวันในเดือนนั้นๆ มีใครทำ Project อะไรบ้าง อย่างในไฟล์ก็คือ ชีท โครงการ หัวข้อ Item สร้างบ้าน วันที่ 1 วุฒิพงษ์ วันที่ 4 วสันต์
Item หลังคา วันที่ 2 วุฒิพงษ์ วันที่ 6 วสันต์ ก็ให้ข้อมูลดังกล่าวลิ้งค์ไปชีท รายชื่อดังนี้ค่ะ หัวข้อรายชื่อ วุฒิพงษ์ วันที่ 1 ทำ Item สร้างบ้าน วันที่ 2 ทำ Item หลังคา
หัวข้อรายชื่อ วสันต์ วันที่ 4 ทำ Item สร้างบ้าน วันที่ 6 ทำ Item หลังคา แบบนี้เป็นต้นค่ะ

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

ไม่แน่ใจเหมือนกันว่าจะสามารทำได้หรือป่าว
ขอบคุณมากๆค่ะ

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Fri Oct 18, 2013 1:31 pm
by godman
สงสัยต้องให้อาจารย์แล้วหละครับ ผมความรู้ยังไม่ถึง

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Fri Oct 18, 2013 2:30 pm
by bank9597
kanitthw wrote:จากตัวคำตอบที่ส่งมายังไม่ค่อยเข้าใจเลยค่ะ
แต่จะอธิบายความต้องการอีกครั้งน่ะค่ะ
ยกตัวอย่างเช่น หน่วยงาน A มี Project อยู่ 2 งาน และ พนักงานอีก 2 คน และอยากให้ทำไฟล์ขึ้นมาเพื่อต้องการทราบว่า ในแต่ละวันในเดือนนั้นๆ มีใครทำ Project อะไรบ้าง อย่างในไฟล์ก็คือ ชีท โครงการ หัวข้อ Item สร้างบ้าน วันที่ 1 วุฒิพงษ์ วันที่ 4 วสันต์
Item หลังคา วันที่ 2 วุฒิพงษ์ วันที่ 6 วสันต์ ก็ให้ข้อมูลดังกล่าวลิ้งค์ไปชีท รายชื่อดังนี้ค่ะ หัวข้อรายชื่อ วุฒิพงษ์ วันที่ 1 ทำ Item สร้างบ้าน วันที่ 2 ทำ Item หลังคา
หัวข้อรายชื่อ วสันต์ วันที่ 4 ทำ Item สร้างบ้าน วันที่ 6 ทำ Item หลังคา แบบนี้เป็นต้นค่ะ

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

ไม่แน่ใจเหมือนกันว่าจะสามารทำได้หรือป่าว
ขอบคุณมากๆค่ะ

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Fri Oct 18, 2013 3:49 pm
by bank9597
:D จะให้ดึงมาแบบที่คุณต้องการนั้น ทำยากครับ ผมไม่สามารถดึงข้อมูลมาได้โดยอาศัยสูตรรวบรัดแค่ไม่กี่สูตร แต่หากกำหนดเงื่อนไขเพิ่มขึ้นมาก้พอจะทำได้ ดังนี้

ที่ชีท โครงการ เซลล์ AH5 คีย์ =COUNTA(โครงการ!$C5:$AG5) คัดลอกลงมา
ที่ชีท โครงการ เซลล์ AH96 คีย์ =COUNTA(โครงการ!$C5:$AG95) คัดลอกลงมา
ที่ชีท โครงการ เซลล์ AI5 คีย์ =SUM($AH$5:AH5)-AH5+1 คัดลอกลงมา

สร้างชีทใหม่ชื่อ condition
A2 คีย์ =IF(ROWS(A$2:A2)>โครงการ!$AH$96,"",LOOKUP(ROWS(A$2:A2),โครงการ!$AI$5:$AI$95)) คัดลอกลงมา
B2 คีย์ =IF(A2="","",LOOKUP(A2,โครงการ!$AI$5:$AI$95,โครงการ!$B$5:$B$95)) คัดลอกลงมา
D2 คีย์ =MATCH(B2,โครงการ!$B$5:$B$95,0)+4 คัดลอกลงมา
E2 คีย์ =COUNTIF($B$2:B2,B2) คัดลอกลงมา
F2 คีย์ =SMALL(IF(INDIRECT("โครงการ!"&"C"&D2&":"&"AG"&D2)<>"",COLUMN(โครงการ!$C$5:$AG$5)-COLUMN(โครงการ!$C$5)+1),$E2) กด ctrl+shift+enter คัดลอกลงมา

C2 คีย์ =INDEX(INDEX(โครงการ!$C$5:$AG$95,MATCH($A2,โครงการ!$AI$5:$AI$95,0),0),$F2) คัดลอกลงมา

ที่ชีท รายชื่อ เซลล์ B4 คีย์ =IF(ISNA(LOOKUP(2,1/((condition!$C$2:$C$5=$A4)*(condition!$F$2:$F$5=B$3)),condition!$B$2:$B$5)),"",LOOKUP(2,1/((condition!$C$2:$C$5=$A4)*(condition!$F$2:$F$5=B$3)),condition!$B$2:$B$5)) คัดลอกไปทางขวา แล้วคัดลอกลงล่างพร้อมกัน

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Fri Oct 18, 2013 8:43 pm
by snasui
kanitthw wrote:จากตัวคำตอบที่ส่งมายังไม่ค่อยเข้าใจเลยค่ะ
แต่จะอธิบายความต้องการอีกครั้งน่ะค่ะ
ยกตัวอย่างเช่น หน่วยงาน A มี Project อยู่ 2 งาน และ พนักงานอีก 2 คน และอยากให้ทำไฟล์ขึ้นมาเพื่อต้องการทราบว่า ในแต่ละวันในเดือนนั้นๆ มีใครทำ Project อะไรบ้าง อย่างในไฟล์ก็คือ ชีท โครงการ หัวข้อ Item สร้างบ้าน วันที่ 1 วุฒิพงษ์ วันที่ 4 วสันต์
Item หลังคา วันที่ 2 วุฒิพงษ์ วันที่ 6 วสันต์ ก็ให้ข้อมูลดังกล่าวลิ้งค์ไปชีท รายชื่อดังนี้ค่ะ หัวข้อรายชื่อ วุฒิพงษ์ วันที่ 1 ทำ Item สร้างบ้าน วันที่ 2 ทำ Item หลังคา
หัวข้อรายชื่อ วสันต์ วันที่ 4 ทำ Item สร้างบ้าน วันที่ 6 ทำ Item หลังคา แบบนี้เป็นต้นค่ะ

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

ไม่แน่ใจเหมือนกันว่าจะสามารทำได้หรือป่าว
ขอบคุณมากๆค่ะ
:D ลองตามนี้ครับ

ที่ชีทรายชื่อเซลล์ B4 คีย์

=LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX(โครงการ!$B$5:$B$6,MATCH($A4,โครงการ!D$5:D$6,0))))

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

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Sat Oct 19, 2013 1:36 am
by bank9597
=LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX(โครงการ!$B$5:$B$6,MATCH($A4,โครงการ!D$5:D$6,0))))
lookup เป็นสูตรที่วิเศษมากจริงๆครับ ทำให้เรื่องยากๆกลายเป็นเรื่องง่ายจริงๆ เป็นสูตรเดียวที่ผมใช้แทบไม่เป็นเลย เยี่ยมมากครับ :thup:

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Tue Oct 22, 2013 8:24 am
by kanitthw
คำสั่ง =LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX(โครงการ!$B$5:$B$6,MATCH($A4,โครงการ!D$5:D$6,0))))

ลองทำแล้วยังไม่ได้เลยอ่ะค่ะ พอจะมีตัวอย่างไฟล์ ให้ดูไหมค่ะ
ขอบคุณมากค่ะ

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Tue Oct 22, 2013 9:20 am
by joo
kanitthw wrote:คำสั่ง =LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX(โครงการ!$B$5:$B$6,MATCH($A4,โครงการ!D$5:D$6,0))))

ลองทำแล้วยังไม่ได้เลยอ่ะค่ะ พอจะมีตัวอย่างไฟล์ ให้ดูไหมค่ะ
:D ลองแนบไฟล์ที่ได้ลองทำแล้วไม่ได้มาดูกันครับ

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Tue Oct 22, 2013 9:36 am
by kanitthw
ใช้ได้แล้วค่ะ เก่งมากๆเลยค่ะ
แต่เจอปัญหาอีกหนึ่งปัญหาค่ะ ว่าถ้าใน 1 วัน ทำ 2 โปรเจค โดยใช้คนแค่ 1 คน เช่น
วันที่ 4 วุฒิพงษ์ ทำทั้ง Item สร้างบ้าน และ Item หลังคา จะให้ไปโชว์ ชีทรายชื่อ ทั้ง 2 Item ได้ไหมค่ะ
ขอบคุณมากค่ะ

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Tue Oct 22, 2013 6:20 pm
by snasui
:D ช่วยแสดงคำตอบที่ต้องการมาด้วยครับว่าให้แสดงทั้ง 2 Items ที่ว่านั้นมีลักษณะเป็นเช่นไร

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Thu Oct 24, 2013 8:43 am
by kanitthw
ยกตัวอย่างเช่น
ว่าถ้าใน 1 วัน ทำ 2 โปรเจค โดยใช้คนแค่ 1 คน เช่น
วันที่ 3 วสันต์ ทำทั้ง Item สร้างบ้าน และ Item หลังคา จะให้ไปโชว์ ชีทรายชื่อ ทั้ง 2 Item
วันที่ 5 วุฒิพงษ์ ทำทั้ง Item สร้างบ้าน และ Item หลังคา จะให้ไปโชว์ ชีทรายชื่อ ทั้ง 2 Item

เนื่องจากว่ามีหลายโปรเจคที่ต้องทำซึ่งแต่ละวัน 1 คนอาจจะต้องทำหลายโปรเจค (อย่างมากคนละ 3 โปรเจค)
ขอบคุณมากค่ะ

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Thu Oct 24, 2013 8:15 pm
by snasui
:D ลองตามนี้ครับ

ที่ชี่ท รายชื่อ เซลล์ B4 คีย์สูตร

=LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX(โครงการ!$B$5:$B$6,SMALL(IF(โครงการ!C$5:C$6=LOOKUP(CHAR(255),$A$4:$A4),ROW(โครงการ!$B$5:$B$6)-ROW(โครงการ!$B$5)+1),MOD((ROWS(B$2:B2)-1),2)+1))))

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


!
Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Fri Oct 25, 2013 10:52 am
by kanitthw
:thup: :cp: :D ขอบคุณมากๆค่ะ ทำได้แล้ว แต่ว่าขอรบกวนอีกนิดนึงค่ะ พอดีอยากทราบที่มาที่ไปของสูตรดังกล่าว พอจะอธิบายให้ได้ไหมค่ะ
ขอบคุณมากๆ ค่ะ

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Sat Oct 26, 2013 7:10 am
by snasui
:D เป็นสูตรที่ยากแก่การทำความเข้าใจ ลองค่อย ๆ ทำความเข้าใจตามด้านล่าง ซึ่งการแทนค่าจะต้องแทนค่าสูตรด้านล่างสุดขึ้นด้านบน

จากสูตร

=LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX(โครงการ!$B$5:$B$6,SMALL(IF(โครงการ!C$5:C$6=LOOKUP(CHAR(255),$A$4:$A4),ROW(โครงการ!$B$5:$B$6)-ROW(โครงการ!$B$5)+1),MOD((ROWS(B$2:B2)-1),2)+1))))

หมายถึงให้หาค่าของ CHAR(255) จากช่วงข้อมูล CHOOSE({1,2},"",INDEX(โครงการ!$B$5:$B$6,SMALL(IF(โครงการ!C$5:C$6=LOOKUP(CHAR(255),$A$4:$A4),ROW(โครงการ!$B$5:$B$6)-ROW(โครงการ!$B$5)+1),MOD((ROWS(B$2:B2)-1),2)+1)))

จากสูตร

CHOOSE({1,2},"",INDEX(โครงการ!$B$5:$B$6,SMALL(IF(โครงการ!C$5:C$6=LOOKUP(CHAR(255),$A$4:$A4),ROW(โครงการ!$B$5:$B$6)-ROW(โครงการ!$B$5)+1),MOD((ROWS(B$2:B2)-1),2)+1)))

หมายถึงให้แสดงผลลัพธ์เป็นช่วงข้อมูลของ 2 ค่าคือ ค่า "" และผลลัพธ์ของ INDEX(โครงการ!$B$5:$B$6,SMALL(IF(โครงการ!C$5:C$6=LOOKUP(CHAR(255),$A$4:$A4),ROW(โครงการ!$B$5:$B$6)-ROW(โครงการ!$B$5)+1),MOD((ROWS(B$2:B2)-1),2)+1))

จากสูตร

INDEX(โครงการ!$B$5:$B$6,SMALL(IF(โครงการ!C$5:C$6=LOOKUP(CHAR(255),$A$4:$A4),ROW(โครงการ!$B$5:$B$6)-ROW(โครงการ!$B$5)+1),MOD((ROWS(B$2:B2)-1),2)+1))

หมายถึง จากช่วงข้อมูล โครงการ!$B$5:$B$6 ให้นำลำดับที่เป็นผลลัพธ์ของ SMALL(IF(โครงการ!C$5:C$6=LOOKUP(CHAR(255),$A$4:$A4),ROW(โครงการ!$B$5:$B$6)-ROW(โครงการ!$B$5)+1),MOD((ROWS(B$2:B2)-1),2)+1) มาแสดง

จากสูตร

SMALL(IF(โครงการ!C$5:C$6=LOOKUP(CHAR(255),$A$4:$A4),ROW(โครงการ!$B$5:$B$6)-ROW(โครงการ!$B$5)+1),MOD((ROWS(B$2:B2)-1),2)+1)

หมายถึง ให้หาค่าในช่วงของ IF(โครงการ!C$5:C$6=LOOKUP(CHAR(255),$A$4:$A4),ROW(โครงการ!$B$5:$B$6)-ROW(โครงการ!$B$5)+1
แล้วนำค่าที่น้อยที่สุดเป็นลำดับที่เป็นผลลัพธ์ของ MOD((ROWS(B$2:B2)-1),2)+1 มาแสดง

จากสูตร

IF(โครงการ!C$5:C$6=LOOKUP(CHAR(255),$A$4:$A4),ROW(โครงการ!$B$5:$B$6)-ROW(โครงการ!$B$5)+1)

หมายถึงหาก โครงการ!C$5:C$6=LOOKUP(CHAR(255),$A$4:$A4) เป็นจริง ให้แสดงช่วงข้อมูล ROW(โครงการ!$B$5:$B$6)-ROW(โครงการ!$B$5)+1

จากสูตร ROW(โครงการ!$B$5:$B$6)-ROW(โครงการ!$B$5)+1 เป็นการแสดงค่าลำดับโดยให้เริ่มจากลำดับที่ 1 จากสูตรนี้จะให้ผลลัพธ์เป็น {1,2}

จากสูตร MOD((ROWS(B$2:B2)-1),2)+1 เป็นการหาเศษจากการหาร ROWS(B$2:B2)-1 ด้วย 2

สำหรับฟังก์ชั่นต่าง ๆ ศึกษาได้จาก Link นี้ครับ http://office.microsoft.com/th-th/excel ... aspx?CTT=1

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Mon Oct 28, 2013 11:00 am
by kanitthw
:cry: เข้าใจยากจริงๆค่ะ
ขอถามอีกนิดนึงน่ะค่ะ ถ้าเกิดว่ามีโครงการทั้งหมด 24 Item และมีพนักงานทั้งหมด 5 คน
แต่ละคนจะมีการทำโครงการต่อวันอย่างมากคนล่ะ 3 โครงการ ต้องการให้มีรูปแบบดังไฟล์แนบค่ะ
ปล.ตอนแรกคิดว่าจะทำความเข้าใจกับสูตรและมาดัดเปลี่ยนเอง แต่ดูสูตรแล้วไม่ยัง งงๆ อยู่ค่ะ
รบกวนด้วยน่ะค่ะ
ขอบคุณมากๆค่ะ

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Mon Oct 28, 2013 1:24 pm
by snasui
:lol: ปรับสูตรเป็นตามด้านล่างครับ

=LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX(โครงการ!$B$5:$B$94,SMALL(IF(โครงการ!C$5:C$94=LOOKUP(CHAR(255),$A$4:$A4),ROW(โครงการ!$B$5:$B$94)-ROW(โครงการ!$B$5)+1),MOD((ROWS(B$2:B2)-1),3)+1))))
Ctrl+Shift+Enter > Copy ไปทางขวาและลงด้านล่าง

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Mon Oct 28, 2013 1:36 pm
by kanitthw
:D :thup: :cp: :P
ทำได้แล้วค่ะ ขอบคุณมากๆค่ะ

Re: วิธีการให้ข้อความเชื่อมโยงกัน(ข้ามชีท)

Posted: Tue Oct 29, 2013 10:13 am
by kanitthw
:( :cry: เจอปัญหาอีกแล้วค่ะ



1. ใน 1 วัน ทำ 2 โปรเจค โดยใช้คนแค่ 1 คน เช่น วันที่ 3 วุฒิพงษ์ ทำทั้ง Item สร้างบ้าน และ Item หลังคา จะให้ไปโชว์ ชีทรายชื่อ ทั้ง 2 Item (ซึ่งอันนี้ทำได้แล้ว)

แต่มีอีกปัญหาหนึ่งค่ะ


2. คือถ้าต้องการให้ใน 1 โครงการมีพนักงานทำหลายคน เช่น โครงการสร้างบ้าน มี วุฒิพงษ์,วสันต์,รณชัย ทำด้วยกัน และให้ไปโชว์ ชีทรายชื่อของแต่ละคน ว่าวันที่ 1 ทำโครงการสร้างบ้าน

ขอบคุณค่ะ