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
:D ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ 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
  2. ที่ 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
  3. ที่ 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
  4. Copy ทั้ง 3 เซลล์ไปวางที่เซลล์ที่เหลือด้านล่าง

!
Note: Ctrl+Shift+Enter
เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
  1. กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น
    Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  2. กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน
    จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
  3. หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)}
    ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น
    ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
  4. การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง

Re: สอบถามเขียนสูตรครับ

Posted: Sun Oct 07, 2018 3:17 pm
by genging
snasui wrote: Sun Oct 07, 2018 1:37 pm :D ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ 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
  2. ที่ 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
  3. ที่ 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
  4. Copy ทั้ง 3 เซลล์ไปวางที่เซลล์ที่เหลือด้านล่าง

!
Note: Ctrl+Shift+Enter
เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
  1. กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น
    Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  2. กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน
    จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
  3. หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)}
    ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น
    ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
  4. การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง
ขอบคุณ อาจารย์ มากครับ ผมเอาไปประยุกใช้ใด้ดีมากเลยครับ
อยากถามอีกนิดครับ ถ้าผมเจอ กรณี ที่ต้นทางบังคับ แบบไฟลแนบ คือมี 2แถว 3แถว ผมควร ทำอย่างไรครับ รบกวนขอความรู้ ครับ

Re: สอบถามเขียนสูตรครับ

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

Re: สอบถามเขียนสูตรครับ

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

Re: สอบถามเขียนสูตรครับ

Posted: Sun Oct 07, 2018 4:21 pm
by snasui
:D ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ 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
  2. ที่ 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
  3. ที่ 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
  4. ที่ 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
  5. คัดลอกสูตรลงด้านล่างไปยังเซลล์ที่เกี่ยวข้อง

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)),""),"")