Page 1 of 1

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

Posted: Mon Mar 04, 2019 2:16 pm
by kaesima
ถ้าต้องการให้ข้อมูลช่อง F ของทุกชีท มาแสดงที่ชีท IO. ต้องใช้สูตรหรือโปรแกรมอะไรมาช่วยได้บ้างคะ
(รูปแบบของตารางข้อมูล ตามไฟล์แนบค่ะ) รบกวนขอคำแนะนำด้วยนะคะ

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

Posted: Mon Mar 04, 2019 4:50 pm
by Supachok
ข้อ1.
ที่ sheet ให้ rename
MYANMAR
LAOS
Cambodia
Vietnam

ข้อ2.
F9:ลงไปถึงข้างล่างตารางแต่ละ sheet
ให้ตั้งชื่อ range
MYANMAR
LAOS
Cambodia
Vietnam

ข้อ3 ที่ชีส IO.

column country ใส่ได้แต่ค่าตามด้านล่างเท่านั้น
MYANMAR
LAOS
Cambodia
Vietnam


B2
=INDEX(INDIRECT(C2,TRUE),AGGREGATE(15,6,IF(IF(C2=MID(INDIRECT(C2&"!A3"),FIND(":",INDIRECT(C2&"!A3"),1)+2,255),ROW($F$9:$F$71)-ROW($F$9)+1)*(INDIRECT(C2)<>"")=0,"",ROW($F$9:$F$71)-ROW($F$9)+1),COUNTIF($C$2:C2,C2)))
Array formula {}
copy down

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

Posted: Mon Mar 04, 2019 4:53 pm
by puriwutpokin
ใช้ตารางช่วงครับ
1.ที่ F2:F5 คีย์ ชื่อชีท MM,LAO,KH,VN ตามลำดับครับ
2.ที่ G2=SUMPRODUCT(--(INDIRECT(F2&"!F1:F100")<>""),--(LEN(INDIRECT(F2&"!F1:F100"))=7)) คัดลอกถึง G5
3.ที่ G6=SUM(G2:G5)
4.ที่ H2=SUM(G$2:G2)-G2+1 คัดลอกถึง H5
5.ที่ E2=IF(ROWS(E$2:E2)>G$6,"",LOOKUP(ROWS(E$2:E2),$H$2:$H$5,$F$2:$F$5)) คัดลอกจนเป็นค่าว่างครับ
6.ที่ B2=IF(ROWS(B$2:B2)>G$6,"",INDEX(INDIRECT(E2&"!F1:F100"),AGGREGATE(15,6,ROW(F$1:F$100)/(LEN(INDIRECT(E2&"!F1:F100"))=7),COUNTIF(E$2:E2,E2)))) คัดลอกลงจนเป็นค่าว่างครับ
7.ที่ C2=IF(ROWS(C$2:C2)>G$6,"",MID(INDIRECT(E2&"!A3"),FIND(": ",INDIRECT(E2&"!A3"))+2,30)) คัดลอกลงจนเป็นค่าว่างครับ

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

Posted: Mon Mar 04, 2019 7:09 pm
by kaesima
ขอบคุณทุกคนที่ช่วยเหลือนะคะ และอยากสอบถาม คุณ puriwutpokin เพิ่มเติมคะ เวลาเปลียนชื่อชีทแล้วทำไมข้อมูลถึง Error คะ
แล้วถ้าหากจะเพิ่มชีทอีกจะได้หรือเปล่าคะ

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

Posted: Mon Mar 04, 2019 7:28 pm
by puriwutpokin
kaesima wrote: Mon Mar 04, 2019 7:09 pm ขอบคุณทุกคนที่ช่วยเหลือนะคะ และอยากสอบถาม คุณ puriwutpokin เพิ่มเติมคะ เวลาเปลียนชื่อชีทแล้วทำไมข้อมูลถึง Error คะ
แล้วถ้าหากจะเพิ่มชีทอีกจะได้หรือเปล่าคะ
ที่คอลัมน์​ F เป็นส่วนของชื่อชีทต้องมีเหมือน​กันครับ ขยายได้ครับ หรือจะเป็นแบบ ยืดหยุ่น​ก็ทำได้ครับ

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

Posted: Tue Mar 05, 2019 9:44 am
by kaesima
puriwutpokin wrote: Mon Mar 04, 2019 7:28 pm
kaesima wrote: Mon Mar 04, 2019 7:09 pm ขอบคุณทุกคนที่ช่วยเหลือนะคะ และอยากสอบถาม คุณ puriwutpokin เพิ่มเติมคะ เวลาเปลียนชื่อชีทแล้วทำไมข้อมูลถึง Error คะ
แล้วถ้าหากจะเพิ่มชีทอีกจะได้หรือเปล่าคะ
ที่คอลัมน์​ F เป็นส่วนของชื่อชีทต้องมีเหมือน​กันครับ ขยายได้ครับ หรือจะเป็นแบบ ยืดหยุ่น​ก็ทำได้ครับ
สอบถามเพิ่มอีกนิดคะ ลองทำดูแล้วถ้าเปลี่ยนชื่อชีทโดยชื่อมีเครื่องหมาย หรือวงเล็บ หรือเว้นวรรค มันจะทำให้สูตร Error ใช่ไหมคะ มีวิธีแก้ไหมคะ

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

Posted: Tue Mar 05, 2019 10:25 am
by puriwutpokin
แนบไฟล์ตัวอย่างมาดูครับว่าลักษณะไหนครับที่ผิดพลาด

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

Posted: Tue Mar 05, 2019 10:48 am
by kaesima
ตัวอย่างตามไฟล์แนบคะ ขอบคุณนะคะ

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

Posted: Tue Mar 05, 2019 11:08 am
by puriwutpokin
ที่ B2=IF(ROWS(B$2:B2)>G$6,"",INDEX(INDIRECT("'"&E2&"'!F1:F100"),AGGREGATE(15,6,ROW(F$1:F$100)/(LEN(INDIRECT("'"&E2&"'!F1:F100"))=7),COUNTIF(E$2:E2,E2))))
ที่ C2=IF(ROWS(C$2:C2)>G$6,"",MID(INDIRECT("'"&E2&"'!A3"),FIND(": ",INDIRECT("'"&E2&"'!A3"))+2,30))
ที่ G2=SUMPRODUCT(--(INDIRECT("'"&F2&"'!F1:F100")<>""),--(LEN(INDIRECT("'"&F2&"'!F1:F100"))=7))

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

Posted: Tue Mar 05, 2019 2:06 pm
by kaesima
ได้ข้อมูลตามต้องการเลยคะ ขอบคุณสำหรับคำแนะนำ และการสอนนะคะ :thup: :thup: :thup:

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

Posted: Mon Mar 11, 2019 10:56 am
by kaesima
puriwutpokin wrote: Tue Mar 05, 2019 11:08 am ที่ B2=IF(ROWS(B$2:B2)>G$6,"",INDEX(INDIRECT("'"&E2&"'!F1:F100"),AGGREGATE(15,6,ROW(F$1:F$100)/(LEN(INDIRECT("'"&E2&"'!F1:F100"))=7),COUNTIF(E$2:E2,E2))))
ที่ C2=IF(ROWS(C$2:C2)>G$6,"",MID(INDIRECT("'"&E2&"'!A3"),FIND(": ",INDIRECT("'"&E2&"'!A3"))+2,30))
ที่ G2=SUMPRODUCT(--(INDIRECT("'"&F2&"'!F1:F100")<>""),--(LEN(INDIRECT("'"&F2&"'!F1:F100"))=7))
ขอสอบถามเพิ่มเติมอีกนะคะ พอดีว่าอยากเพิ่มช่องข้อมูล แต่พอคัดลอกสูตรไปวางอีกช่อง แล้วเปลี่ยนแปลงข้อมูลตามช่องที่อ้างอิงแล้ว ข้อมูล
ไม่ขึ้นตามที่ต้องการ รบกวนขอคำแนะนำ หรือหลักการการทำหน่อยได้ไหมคะ เพื่อจะได้นำมาพัฒนางานคะ แนบไฟล์ตัวอย่างมาให้ด้วยคะ

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

Posted: Mon Mar 11, 2019 12:26 pm
by puriwutpokin
ปรับเป็นที่ :D B2=IF(ROWS($B$2:$B2)>$K$8,"",INDEX(INDIRECT("'"&$I2&"'!C1:AI100"),AGGREGATE(15,6,ROW($J$1:$J100)/(LEN(INDIRECT("'"&$I2&"'!F1:F100"))=7),COUNTIF($I$2:$I2,$I2)),MATCH(B$1,INDIRECT("'"&$I2&"'!C6:AI6"),))) และ คัดลอกสูตรที่ B2 ไปว่างที่ D2:G2 แล้วทั้งหมดคัดลอกลงครับ

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

Posted: Mon Mar 11, 2019 2:53 pm
by kaesima
ขอขอบคุณสำหรับวิธีการสอน และคำแนะนำทั้งหมดนะคะ สามารถช่วยได้เยอะมากเลยค่ะ ขอบคุณมากนะคะ :cp: :cp: :cp: :thup: :thup: :thup: