Page 1 of 1
สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Fri Feb 01, 2019 3:46 pm
by worakiat.b
สอบถามสูตร ดึงข้อมูลจาก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
เช่น Sheet1 มีข้อมูลมาให้แบบนี้
B1
กทม
กทม
กทม
ราชบุรี
ภูเก็ต
ภูเก็ต
โคราช
และ Sheet2 ดึงข้อมูลมากจาก Sheet 1 (โดยการลากเมาส์ลงมา) [Sheet2 เป็น Sheet ที่ถูกออกแบบและตกแต่งมาแล้วครับ เลยใช้เฉพาะดึงข้อมูลอย่างเดียวครับ]
A1
กทม
กทม
กทม
ราชบุรี
ภูเก็ต
ภูเก็ต
โคราช
ประมาณนี้อ่ะครับ ปล.ยกตัวอย่างเป็นชื่อจังหวัดนะครับ แต่ชื่อจริงๆ มีหลาย 1,000 ชื่อครับ
ขอบคุณมากๆครับ
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Fri Feb 01, 2019 3:56 pm
by puriwutpokin
ทำไฟล์ตัวอย่างมา แนบมาด้วยครับ ตามกฏข้อ4 ครับจะได้ทดสอบได้สะดวก และตรงความต้องการครับ
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Fri Feb 01, 2019 4:10 pm
by worakiat.b
puriwutpokin wrote: Fri Feb 01, 2019 3:56 pm
ทำไฟล์ตัวอย่างมา แนบมาด้วยครับ ตามกฏข้อ4 ครับจะได้ทดสอบได้สะดวก และตรงความต้องการครับ
ขอโทษครับ อัพแล้วครับผม
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Fri Feb 01, 2019 5:14 pm
by Bo_ry
Sheet ผลลัพท์
A1 พิมพ์ จังหวัด
A2 ลากลง
=IF(COUNTIF(A$1:A1,A1)=COUNTIF(Data!$D$2:$D$20,A1),"",INDEX(Data!D:D,AGGREGATE(15,6,ROW(Data!$D$2:$D$19)/(1/(1/FREQUENCY(MATCH(Data!$D$2:$D$20&"",Data!$D$2:$D$20&"",),ROW(Data!$D$1:$D$20)))+1>=COLUMN(INDIRECT("a:h"))),ROWS(A$2:A2)))&"")
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Fri Feb 01, 2019 9:23 pm
by Supachok
ช่องว่างโคราชจะไม่มี 2 ช่องครับ
=IF(COUNTIF(A$1:A20,A20)=COUNTIF(Data!$D$2:$D$21,A20)
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Sat Feb 02, 2019 8:08 am
by snasui

แถมอีกตัวอย่างสูตรตามด้านล่างครับ
ที่ชีต ผลลัพธ์
- ที่ A3 คีย์
=Data!D2
Enter
- ที่ A4 คีย์
=IFERROR(IF(COUNTIF(Data!$D$2:$D$16,A3)=COUNTIF(A$3:A3,A3),"",INDEX(Data!$D$2:$D$16,ROWS($A$4:A4)-COUNTIF(A$3:A3,"")+1)),"")
Enter > Copy ลงด้านล่าง
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Sat Feb 02, 2019 6:53 pm
by Bo_ry
สูตรอาจารย์ง่ายจัง
เอาใหม่
A1 พิมพ์ จังหวัด
A2
=IF(COUNTIF(A$1:A1,A1)=COUNTIF(Data!$D$2:$D$90,A1),"",INDEX(Data!$D$2:$D$90,ROWS(A$1:A1)-COUNTIF(A$1:A1,A1)))&""
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Mon Feb 04, 2019 9:01 am
by worakiat.b
ขอบคุณทุกๆท่านมากครับ ฮ่าๆๆ
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Tue Feb 05, 2019 2:27 pm
by worakiat.b
snasui wrote: Sat Feb 02, 2019 8:08 am

แถมอีกตัวอย่างสูตรตามด้านล่างครับ
ที่ชีต ผลลัพธ์
- ที่ A3 คีย์
=Data!D2
Enter
- ที่ A4 คีย์
=IFERROR(IF(COUNTIF(Data!$D$2:$D$16,A3)=COUNTIF(A$3:A3,A3),"",INDEX(Data!$D$2:$D$16,ROWS($A$4:A4)-COUNTIF(A$3:A3,"")+1)),"")
Enter > Copy ลงด้านล่าง
ขอบคุณมากครับอาจารย์ ผมมีกระทู้ใหม่ รบกวนอาจารย์ช่วยดูให้หน่อยนะครับ
https://www.snasui.com/viewtopic.php?f=3&t=14832
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Tue Feb 05, 2019 8:00 pm
by snasui

คำถามต่อเนื่องกันให้ถามในกระทู้เดิมครับ
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Wed Feb 06, 2019 12:49 pm
by worakiat.b
snasui wrote: Tue Feb 05, 2019 8:00 pm

คำถามต่อเนื่องกันให้ถามในกระทู้เดิมครับ
ต้องขอโทษด้วยครับอาจารย์ เดี๋ยวผมถามต่อจากกระทู้เดิมเลยครับ ขอบคุณมากครับ
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Wed Feb 06, 2019 12:49 pm
by worakiat.b
ขออนุญาตถามต่อครับ
คือตอนนี้ผมมี Sheet อยู่ 5 Sheet ครับ
1. Sheet Formula
2. Sheet _FirstStep
3. Sheet total
4. Sheet Data1
5. Sheet ต้องการผลลัพทธ์แบบนี้
Sheet ที่จะแสดงผลข้อมูลจริงๆ คือ total ครับ
แต่ผมขออนุญาต อธิบายวิธีที่ผมทำก่อนนะครับ น่าจะหลายขึ้นตอนมากครับ คืออยากได้ ให้ลากลงมาแล้วได้ผลลัพทธ์เลยครับ
1. ผมต้องไปดึงข้อมูลมา Import ใส่ใน Sheet Data1 และ Sheet _First Step ครับ
2. ผม Import ข้อมูลเสร็จเรียบร้อยแล้ว ผมก็ไปทำต่อที่ Sheet total ครับ ซึ่งผมทำแบบฟอร์มไว้แล้ว ด้วยการลากข้อมูลลงมา
แต่มันแค่ไปดึงข้อมูลมาโชว์เฉยๆครับ (ซึ่งข้อมูลจะเรียง ตามชื่อ Account นะครับ)
3. ลากข้อมูลลงมาเสร็จแล้ว ผมก็ต้อง Insert copied cells จำนวน 2 คอลัมน์ครับ (Insert copied cells ตรงที่ชื่อ Account ไม่เหมือนกันครับ เพื่อให้เกิดช่องว่าง และผมจะ Copy สูตรมาใส่อีกบรรทัดครับ ดังนั้นจะว่าง 1 คอลัมน์ครับ)
4. จากนั้นผมก็ ไป Copy สูตร จาก Sheet Formula มาวางเหนือคอลัมน์ที่มีข้อมูล ต้องทำที่ละ Account นะครับ เพราะว่าต้องใช้การ Replace all (ผมใช้สูตรแบบนี้ครับ ตรงหัวข้อ Find what : $X$10 และ Replace with : $E$ใส่แถวของ Account เช่น $E$12)
ในส่วนที่ดึงข้อมูลมา ผมกำหนดให้ไปดึงข้อมูลมาจาก Sheet _FirstStep ครับ ดึงจากชื่อ Account ล่าสุดมาโชว์ครับ (เหมือนกับว่าต้องเปรียบเทียบกันว่าเข้าไปบริการ Account นั้นๆ ก่อนหน้านี้เมื่อวันที่เท่าไรครับ)
ปล. ถ้าไม่เข้าใจในสิ่งที่ผมพูด ลองดูจาก Sheet "ต้องการผลลัพธ์แบบนี้ ก็ได้ครับ" เพราะผมอาจจะสื่อสารไม่ค่อยเก่งครับ
ขอบคุณล่วงหน้ามากๆครับ ผมต้องการแนวทางการลดขั้นตอนที่ผมทำอยู่ครับ ขอบคุณมากครับ

Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Sun Feb 17, 2019 9:14 am
by snasui

ขออภัยที่มาตอบช้าเนื่องจากเข้าใจว่าได้คำตอบจากกระทู้ที่ไปเปิดใหม่แล้ว
จากตัวอย่างไฟล์ที่แนบมา ตัวอย่างสูตรตามด้านล่างครับ
- ที่ N6, O6 และ P6 คีย์ Acc, Count และ StartLine ตามลำดับ เพื่อเป็นคำลัมน์ช่วย
- ที่ N7 คีย์
=IFERROR(INDEX(Data1!$D$2:$D$26,SMALL(IF(FREQUENCY(MATCH(Data1!$D$2:$D$26,Data1!$D$2:$D$26,0),ROW(Data1!$D$2:$D$26)-ROW(Data1!$D$2)+1),ROW(Data1!$D$2:$D$26)-ROW(Data1!$D$2)+1),ROWS(N$7:N7))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- ที่ O7 คีย์
=IF(N7="","",COUNTIF(Data1!$D$2:$D$26,N7)+2)
Enter > Copy ลงด้านล่าง ต้องการให้แสดงกี่บรรทัดก็เปลี่ยน +2 เป็น + ด้วยค่านั้น ๆ การ +2 หมายถึงให้แสดงค่าเดิมเพิ่มมา 2 บรรทัด
- ที่ P7 คีย์
=IF(O7="","",SUM(O$7:O7)-O7+1)
Enter > Copy ลงด้านล่าง
- ที่ K8 คีย์
=IF(SUMIF($N$7:$N$17,K7,$O$7:$O$17)-1=COUNTIF($K$7:K7,LOOKUP(2,1/(K$7:K7<>""),$K$7:K7)),"",IF(ROWS(K$8:K8)>SUM($O:$O),"",LOOKUP(ROWS(K$8:K8),$P$7:$P$17,$N$7:$N$17)))
Enter > Copy ลงด้านล่าง
- ที่ L8 คีย์
=IF(OR(A8<>"",K8=""),"",SMALL(IF(Data1!$D$2:$D$26=K8,ROW(Data1!$D$2:$D$26)-ROW(Data1!$D$2)+1),COUNTIF(K$8:K8,K8)-1))
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- ที่ A8 คีย์
=IF(K8="","",IF(COUNTIF(K$8:K8,K8)=1,"Start",""))
Enter > Copy ลงด้านล่าง
- ที่ B8 คีย์
=IF($A8<>"",INDEX(_FirstStep!B$1:B$990,MATCH($K8,_FirstStep!$A$1:$A$990,0)),IF($L8<>"",INDEX(Data1!A$2:A$26,$L8),""))
Enter > Copy ลงด้านล่าง > Copy ไปใช้กับคอลัมน์อื่นทั้งหมดยกเว้นคอลัมน์ C
- ที่ C8 คีย์
=IF($A8<>"",INDEX(_FirstStep!C$1:C$990,MATCH($K8,_FirstStep!$A$1:$A$990,0)),IF($L8<>"",INDEX(Data1!L$2:L$26,$L8),""))
Enter > Copy ลงด้านล่าง
!
| Note: Ctrl+Shift+Enter
เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
- กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น
Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
- กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน
จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
- หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)}
ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น
ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
- การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง
|
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Mon Mar 04, 2019 5:11 pm
by worakiat.b
snasui wrote: Sun Feb 17, 2019 9:14 am

ขออภัยที่มาตอบช้าเนื่องจากเข้าใจว่าได้คำตอบจากกระทู้ที่ไปเปิดใหม่แล้ว
จากตัวอย่างไฟล์ที่แนบมา ตัวอย่างสูตรตามด้านล่างครับ
- ที่ N6, O6 และ P6 คีย์ Acc, Count และ StartLine ตามลำดับ เพื่อเป็นคำลัมน์ช่วย
- ที่ N7 คีย์
=IFERROR(INDEX(Data1!$D$2:$D$26,SMALL(IF(FREQUENCY(MATCH(Data1!$D$2:$D$26,Data1!$D$2:$D$26,0),ROW(Data1!$D$2:$D$26)-ROW(Data1!$D$2)+1),ROW(Data1!$D$2:$D$26)-ROW(Data1!$D$2)+1),ROWS(N$7:N7))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- ที่ O7 คีย์
=IF(N7="","",COUNTIF(Data1!$D$2:$D$26,N7)+2)
Enter > Copy ลงด้านล่าง ต้องการให้แสดงกี่บรรทัดก็เปลี่ยน +2 เป็น + ด้วยค่านั้น ๆ การ +2 หมายถึงให้แสดงค่าเดิมเพิ่มมา 2 บรรทัด
- ที่ P7 คีย์
=IF(O7="","",SUM(O$7:O7)-O7+1)
Enter > Copy ลงด้านล่าง
- ที่ K8 คีย์
=IF(SUMIF($N$7:$N$17,K7,$O$7:$O$17)-1=COUNTIF($K$7:K7,LOOKUP(2,1/(K$7:K7<>""),$K$7:K7)),"",IF(ROWS(K$8:K8)>SUM($O:$O),"",LOOKUP(ROWS(K$8:K8),$P$7:$P$17,$N$7:$N$17)))
Enter > Copy ลงด้านล่าง
- ที่ L8 คีย์
=IF(OR(A8<>"",K8=""),"",SMALL(IF(Data1!$D$2:$D$26=K8,ROW(Data1!$D$2:$D$26)-ROW(Data1!$D$2)+1),COUNTIF(K$8:K8,K8)-1))
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- ที่ A8 คีย์
=IF(K8="","",IF(COUNTIF(K$8:K8,K8)=1,"Start",""))
Enter > Copy ลงด้านล่าง
- ที่ B8 คีย์
=IF($A8<>"",INDEX(_FirstStep!B$1:B$990,MATCH($K8,_FirstStep!$A$1:$A$990,0)),IF($L8<>"",INDEX(Data1!A$2:A$26,$L8),""))
Enter > Copy ลงด้านล่าง > Copy ไปใช้กับคอลัมน์อื่นทั้งหมดยกเว้นคอลัมน์ C
- ที่ C8 คีย์
=IF($A8<>"",INDEX(_FirstStep!C$1:C$990,MATCH($K8,_FirstStep!$A$1:$A$990,0)),IF($L8<>"",INDEX(Data1!L$2:L$26,$L8),""))
Enter > Copy ลงด้านล่าง
!
| Note: Ctrl+Shift+Enter
เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
- กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น
Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
- กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน
จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
- หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)}
ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น
ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
- การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง
|
ขอบคุณมากครับอาจารย์ ผมลองทำตามแล้ว ยังไม่ได้เลยครับ ขอโทษด้วยครับพอดีผมไม่ค่อยเก่งเรื่อง Excel ครับ T_T
ไฟล์แนบคือผลลัพธ์ที่ทำตามคำแนะนำของอาจารย์ล่าสุดครับ
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Mon Mar 04, 2019 8:18 pm
by snasui

คีย์แล้วต้อง Copy ลงด้านล่างด้วย ตอนนี้คีย์แค่เซลล์เดียวเท่านั้น เป็นปกติที่จะไม่ได้คำตอบ ลองทบทวนคำตอบใหม่ เมื่อทำแล้วติดปัญหาใดค่อยถามกันต่อครับ
Re: สอบถามสูตร ดึงข้อมูลจากอีก Sheet1 มาแสดงผล Sheet2 และให้เว้นบรรทัดอัตโนมัติ เมื่อเจอชื่อที่ไม่ซ้ำกันหน่อยครับ
Posted: Tue Mar 05, 2019 11:00 am
by worakiat.b
snasui wrote: Mon Mar 04, 2019 8:18 pm

คีย์แล้วต้อง Copy ลงด้านล่างด้วย ตอนนี้คีย์แค่เซลล์เดียวเท่านั้น เป็นปกติที่จะไม่ได้คำตอบ ลองทบทวนคำตอบใหม่ เมื่อทำแล้วติดปัญหาใดค่อยถามกันต่อครับ
ขอบคุณมากๆครับอาจารย์ ทำได้แล้วครับ
