Page 1 of 1
สอบถามเขียนสูตรครับ
Posted: Sun Oct 07, 2018 1:07 pm
by genging
ต้องการ เอาข้อความจาก สอง คอลั่ม ที่sheet2 ไปใว้ที่ sheet 1
แต่บางที ข้อมูลก็มา คนละ แถว อยากได้สูตร ที่จะสามารถ ก็อปปี้ แล้ววางลง ได้เลยโดยไม่ต้องย้ายแถวเพื่อข้อมูล จะไปอยู่ที่ ที่ sheet 1 เลย ข้อมูลจะมารูปแบบเดียวกันหมด แต่จะสลับแถวมา ครับ
Re: สอบถามเขียนสูตรครับ
Posted: Sun Oct 07, 2018 1:37 pm
by snasui

ตัวอย่างสูตรตามด้านล่างครับ
- ที่ B1 คีย์
=IFERROR(INDEX('2'!$D$1:$D$11,SMALL(IF('2'!$F$1:$F$11<>"",ROW('2'!$D$1:$D$11)-ROW('2'!$D$1)+1),COUNTIF(A$1:A1,A1))),"")
Ctrl+Shift+Enter
- ที่ D1 คีย์
=IFERROR(INDEX('2'!$G$1:$G$11,SMALL(IF('2'!$F$1:$F$11<>"",ROW('2'!$D$1:$D$11)-ROW('2'!$D$1)+1),COUNTIF(A$1:A1,A1))),"")
Ctrl+Shift+Enter
- ที่ B2 คีย์
=IFERROR(INDEX('2'!$F$1:$F$11,SMALL(IF('2'!$F$1:$F$11<>"",ROW('2'!$D$1:$D$11)-ROW('2'!$D$1)+1),COUNTIF(A$1:A1,A1))),"")
Ctrl+Shift+Enter
- Copy ทั้ง 3 เซลล์ไปวางที่เซลล์ที่เหลือด้านล่าง
!
| 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: สอบถามเขียนสูตรครับ
Posted: Sun Oct 07, 2018 3:17 pm
by genging
snasui wrote: Sun Oct 07, 2018 1:37 pm

ตัวอย่างสูตรตามด้านล่างครับ
- ที่ B1 คีย์
=IFERROR(INDEX('2'!$D$1:$D$11,SMALL(IF('2'!$F$1:$F$11<>"",ROW('2'!$D$1:$D$11)-ROW('2'!$D$1)+1),COUNTIF(A$1:A1,A1))),"")
Ctrl+Shift+Enter
- ที่ D1 คีย์
=IFERROR(INDEX('2'!$G$1:$G$11,SMALL(IF('2'!$F$1:$F$11<>"",ROW('2'!$D$1:$D$11)-ROW('2'!$D$1)+1),COUNTIF(A$1:A1,A1))),"")
Ctrl+Shift+Enter
- ที่ B2 คีย์
=IFERROR(INDEX('2'!$F$1:$F$11,SMALL(IF('2'!$F$1:$F$11<>"",ROW('2'!$D$1:$D$11)-ROW('2'!$D$1)+1),COUNTIF(A$1:A1,A1))),"")
Ctrl+Shift+Enter
- Copy ทั้ง 3 เซลล์ไปวางที่เซลล์ที่เหลือด้านล่าง
!
| 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 ทุกครั้ง
|
ขอบคุณ อาจารย์ มากครับ ผมเอาไปประยุกใช้ใด้ดีมากเลยครับ
อยากถามอีกนิดครับ ถ้าผมเจอ กรณี ที่ต้นทางบังคับ แบบไฟลแนบ คือมี 2แถว 3แถว ผมควร ทำอย่างไรครับ รบกวนขอความรู้ ครับ
Re: สอบถามเขียนสูตรครับ
Posted: Sun Oct 07, 2018 3:27 pm
by snasui

กรุณาทำตัวอย่างคำตอบให้สอดคล้องกับข้อมูลในชีต 2 จะได้เข้าใจลักษณะตำแหน่งการวางข้อมูลครับ
Re: สอบถามเขียนสูตรครับ
Posted: Sun Oct 07, 2018 3:49 pm
by genging
snasui wrote: Sun Oct 07, 2018 3:27 pm

กรุณาทำตัวอย่างคำตอบให้สอดคล้องกับข้อมูลในชีต 2 จะได้เข้าใจลักษณะตำแหน่งการวางข้อมูลครับ
พยายามทำหลายแบบ แต่ยังไม่ได้ รบกวน ช่วยชี้แนะอีกนิดครับครับ
ขอบคุณครับ
Re: สอบถามเขียนสูตรครับ
Posted: Sun Oct 07, 2018 4:21 pm
by snasui

ตัวอย่างสูตรตามด้านล่างครับ
- ที่ D1 คีย์
=IFERROR(INDEX('2'!$G$1:$G$11,SMALL(IF(1-ISNUMBER(MATCH('2'!$G$1:$G$11,{"Gi0/2/4","Gi0/2/5"},0)),IF('2'!$F$1:$F$11<>"",ROW('2'!$D$1:$D$11)-ROW('2'!$D$1)+1)),COUNTIF(A$1:A1,A1))),"")
Ctrl+Shift+Enter
- ที่ B2 คีย์
=IFERROR(INDEX('2'!$F$1:$F$11,SMALL(IF(1-ISNUMBER(MATCH('2'!$G$1:$G$11,{"Gi0/2/4","Gi0/2/5"},0)),IF('2'!$F$1:$F$11<>"",ROW('2'!$D$1:$D$11)-ROW('2'!$D$1)+1)),COUNTIF(A$1:A1,A1))),"")
Ctrl+Shift+Enter
- ที่ B17 คีย์
=IFERROR(INDEX('2'!$G$1:$G$11,SMALL(IF(ISNUMBER(MATCH('2'!$G$1:$G$11,{"Gi0/2/4","Gi0/2/5"},0)),IF('2'!$F$1:$F$11<>"",ROW('2'!$D$1:$D$11)-ROW('2'!$D$1)+1)),COUNTIF(A$17:A17,A17))),"")
Ctrl+Shift+Enter
- ที่ B19 คีย์
=IFERROR(INDEX('2'!$F$1:$F$11,SMALL(IF(ISNUMBER(MATCH('2'!$G$1:$G$11,{"Gi0/2/4","Gi0/2/5"},0)),IF('2'!$F$1:$F$11<>"",ROW('2'!$D$1:$D$11)-ROW('2'!$D$1)+1)),COUNTIF(A$17:A17,A17))),"")
Ctrl+Shift+Enter
- คัดลอกสูตรลงด้านล่างไปยังเซลล์ที่เกี่ยวข้อง
Re: สอบถามเขียนสูตรครับ
Posted: Sun Oct 07, 2018 4:33 pm
by genging
ขอบคุณครับ อาจารย์ snasui (คนควน)
ที่ช่วยเหลือ และให้ความรู้
สูตรที่ให้มาตรงตามต้องการเลยครับ
ใด้ความรู้เยอะมาก เลยครับ
ขอบคุณครับ
Re: สอบถามเขียนสูตรครับ
Posted: Sun Oct 07, 2018 6:43 pm
by Bo_ry
อีกแบบ
B1 ลากไป D1 ลากลง
=IFERROR(IF(ISEVEN(COLUMN(B1)),INDEX('2'!$D$1:$G$11,AGGREGATE(15,6,ROW('2'!$F$1:$F$11)/('2'!$F$1:$F$11<>"")/NOT(ISNUMBER(FIND("/",'2'!$F$1:$F$11))),INT((ROW(B1)+1)/2)),MOD(ROW(B1)+1,2)*2+INT(COLUMNS($B1:B1)*1.5)),""),"")
B17 ลากไป D17 ลากลง
=IFERROR(IF(ISEVEN(COLUMN(B17)),INDEX('2'!$D$1:$G$11,AGGREGATE(15,6,ROW('2'!$F$1:$F$11)/('2'!$F$1:$F$11<>"")/(ISNUMBER(FIND("/",'2'!$F$1:$F$11))),INT((ROWS(B$17:B17)+1)/2)),MOD(ROW(B17)+1,2)*2+INT(COLUMNS($B17:B17)*1.5)),""),"")