Page 1 of 1

ในคอลัมน์ ให้ขยับเซลล์ที่มีข้อความขึ้นไป ให้เซลล์ติดกัน

Posted: Wed Aug 13, 2025 5:31 pm
by sea2sky
โจทย์คอลัมน์ A ในเอาบรรทัดข้อความขยับขึ้นไป แสดงผลลัพธ์ในคอลัมน์ D

โจทย์คอลัมน์ B ในเอาบรรทัดข้อความขยับขึ้นไป แสดงผลลัพธ์ในคอลัมน์ E

มีวิธีนี้ Home - > Find & Select > Go to Special · 3.เลือก Blanks แล้ว กด OK ...

แต่ต้องการเขียนเป็นสูตรค่ะ ผลลัพธ์ คอลัมน์ D และคอลัมน์ E ลองเขียนสูตรได้ ดังนี้

สูตร D2 ={INDEX(Sheet1!$A$2:$A$14,SMALL(IF(NOT(ISBLANK(Sheet1!$A$2:$A$14)),ROW(Sheet1!$A$2:$A$14)-ROW(Sheet1!$A$1)),ROW()-ROW(C$1)))}

สูตร E2 ={INDEX(Sheet1!$A$2:$A$14,SMALL(IF(NOT(ISBLANK(Sheet1!$A$2:$A$14)),ROW(Sheet1!$A$2:$A$14)-ROW(Sheet1!$A$1)),ROW()-ROW(C$1)))}
คอลัมน์ D2 ถึง D4 และ E2 ถึง E3 ได้ผลตามที่ต้องการแล้วค่ะ

โจทย์ถึงแถว 7 คอลัมน์ D และคอลัมน์ E เผลอลากสูตรมาถึง แถว 7 ทำให้เซลล์ที่ไม่ต้องการมีค่า #NUM!

จะปรับสูตรใหม่ได้อย่างไรคะ ให้เซลล์ที่ไม่ต้องการ ไม่มี #NUM!

ขอบคุณค่ะ

Re: ในคอลัมน์ ให้ขยับเซลล์ที่มีข้อความขึ้นไป ให้เซลล์ติดกัน

Posted: Wed Aug 13, 2025 10:07 pm
by snasui
:D เซลล์ D2 ปรับสูตรเป็นด้านล่างครับ

=IFERROR(INDEX(Sheet1!A$2:A$14,SMALL(IF(NOT(ISBLANK(Sheet1!A$2:A$14)),ROW(Sheet1!$A$2:$A$14)-ROW(Sheet1!$A$1)),ROWS(D$2:D2))),"") หรือ

=IFERROR(INDEX(Sheet1!A$2:A$14,SMALL(IF(Sheet1!A$2:A$14<>"",ROW(Sheet1!$A$2:$A$14)-ROW(Sheet1!$A$1)),ROWS(D$2:D2))),"")

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

Re: ในคอลัมน์ ให้ขยับเซลล์ที่มีข้อความขึ้นไป ให้เซลล์ติดกัน

Posted: Thu Aug 14, 2025 1:52 am
by sea2sky
ขอบคุณมากค่ะ ได้ผลตามที่ต้องการค่ะ