ตัวอย่างสูตรตามด้านล่างครับ
- ที่ AB5 คีย์
=IFERROR(DAY(INDEX($A:$A,AGGREGATE(15,6,ROW($AB$11:$AB$20)/($AA$11:$AA$20=$G5),COLUMNS($AB5:AB5)))),"")
Enter > Copy ไปด้านขวาเท่าที่คิดว่าข้อมูลขยายไปถึงแล้ว Copy ลงด้านล่างถึงบรรทัดที่ 7
- ที่ J5 คีย์
=SUBSTITUTE(TRIM(SUBSTITUTE(AB5&","&AC5&","&AD5&","&AE5&","&AF5,","," "))," ",",")
Enter > Copy ลงด้านล่างถึง J7
สูตรแรกประกอบด้วย IFERROR, DAY, INDEX, AGGREGATE, ROW, COLUMNS ความหมายแต่ละส่วนของสูตรมีดังนี้
- INDEX($A$A,AGGREGATE(15,6,ROW($AB$11$AB$20)/($AA$11$AA$20=$G5),COLUMNS($AB5AB5))) ฟังก์ชันนี้จะค้นหาค่าในคอลัมน์ A โดยใช้ตำแหน่งที่ได้จากฟังก์ชัน AGGREGATE
- AGGREGATE(15,6,ROW($AB$11$AB$20)/($AA$11$AA$20=$G5),COLUMNS($AB5AB5)) ฟังก์ชันนี้จะคืนค่าตำแหน่งที่ COLUMNS($AB5AB5) ในอาร์เรย์ที่สร้างจาก ROW($AB$11$AB$20)/($AA$11$AA$20=$G5) ฟังก์ชัน AGGREGATE ทำหน้าที่เป็น SMALL ถ้าพารามิเตอร์แรกเป็น 15 และ 6 คือการละเว้นค่าผิดพลาด
- DAY(INDEX(...)) ฟังก์ชันนี้จะคืนค่าวันจากวันที่ที่ได้จากฟังก์ชัน INDEX
- IFERROR(DAY(...),"") ฟังก์ชันนี้จะคืนค่าวันที่ถ้าไม่มีข้อผิดพลาด แต่ถ้ามีข้อผิดพลาดจะคืนค่าเป็นสตริงว่าง
ดังนั้น สูตรนี้จะคืนค่าวันที่จากคอลัมน์ A ที่ตรงกับเงื่อนไขในคอลัมน์ AA และ AB ถ้าไม่มีข้อผิดพลาด แต่ถ้ามีข้อผิดพลาดจะคืนค่าเป็นสตริงว่าง
สูตรที่สองประกอบด้วย SUBSTITUTE และ TRIM ร่วมกัน ความหมายแต่ละส่วนของสูตรมีดังนี้
- AB5&","&AC5&","&AD5&","&AE5&","&AF5 ส่วนนี้จะรวมข้อมูลจากเซลล์ AB5, AC5, AD5, AE5, และ AF5 โดยแยกแต่ละเซลล์ด้วยเครื่องหมายจุลภาค (comma)
- SUBSTITUTE(AB5&","&AC5&","&AD5&","&AE5&","&AF5,","," ") ฟังก์ชันนี้จะแทนที่เครื่องหมายจุลภาค (comma) ด้วยช่องว่าง (space)
- TRIM(SUBSTITUTE(...)) ฟังก์ชันนี้จะลบช่องว่างที่มากเกินไปจากข้อความที่ได้จากฟังก์ชัน SUBSTITUTE
- SUBSTITUTE(TRIM(...)," ",",") ฟังก์ชันนี้จะแทนที่ช่องว่าง (space) ด้วยเครื่องหมายจุลภาค (comma)
ดังนั้น สูตรนี้จะรวมข้อมูลจากเซลล์ AB5, AC5, AD5, AE5, และ AF5 โดยแยกแต่ละเซลล์ด้วยเครื่องหมายจุลภาค (comma) และลบช่องว่างที่มากเกินไป