ฉันต้องการความช่วยเหลือเกี่ยวกับฟังก์ชั่น ในคอลัมน์ AI มีรายการชื่อ แต่จะคั่นด้วยเซลล์ว่าง มีวิธีการแสดงชื่อเหล่านี้ในคอลัมน์ B แต่ไม่มีเซลล์ว่างหรือไม่?
ผลลัพธ์ควรมีลักษณะเช่นนี้:
ฉันต้องการความช่วยเหลือเกี่ยวกับฟังก์ชั่น ในคอลัมน์ AI มีรายการชื่อ แต่จะคั่นด้วยเซลล์ว่าง มีวิธีการแสดงชื่อเหล่านี้ในคอลัมน์ B แต่ไม่มีเซลล์ว่างหรือไม่?
ผลลัพธ์ควรมีลักษณะเช่นนี้:
คำตอบ:
สูตรอาร์เรย์ต่อไปนี้จะทำงานแม้ว่าชื่อใด ๆ จะเหมือนกัน ป้อนB2
ด้วยCtrl+ Shift+ Enterจากนั้นเติม
อันนี้ใช้ช่วงคงที่ตามข้อมูลตัวอย่างของคุณ:
{=IFERROR(INDEX(A:A,SMALL(IF(A$1:A$10<>"",ROW(A$1:A$10),""),ROW()-ROW(A$1)+1)),"")}
อันนี้ใช้ช่วงไดนามิกปรับโดยอัตโนมัติเมื่อคุณเพิ่มชื่อเพิ่มเติมในคอลัมน์A:A
:
=IFERROR(INDEX(A:A,SMALL(IF(A$1:INDEX(A:A,MATCH("*",A:A,-1))<>"",ROW(A$1:INDEX(A:A,MATCH("*",A:A,-1))),""),ROW()-ROW(A$1)+1)),"")
สูตรไดนามิกเดียวกันดังกล่าวข้างต้นในรูปแบบขยาย:
=
IFERROR(
INDEX(
A:A
, SMALL(
IF(
A$1:INDEX(A:A,MATCH("*",A:A,-1))<>""
, ROW(A$1:INDEX(A:A,MATCH("*",A:A,-1)))
, ""
)
, ROW()-ROW(A$1)+1
)
)
, ""
)
อย่างที่คุณเห็นสูตรที่สองนี้เป็นสูตรแรกที่A$10
ถูกแทนที่ด้วยINDEX(A:A,MATCH("*",A:A,-1))
ทั้งหมด
คำอธิบาย:
IF()
ฟังก์ชั่นเทียบเท่ากับ:
IF(
{"";"Camilo Georgi";"";"Carla Suarez Navarro";"";"Belinda Bencic";"";"Grace Min";"";"Johanna Larsson"}<>""
, {1;2;3;4;5;6;7;8;9;10}
, ""
)
ซึ่ง Excel จะขยายค่าคงที่ให้เป็นค่าคงที่ความยาวที่ตรงกันโดยอัตโนมัติ
IF(
{FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE}
, {1;2;3;4;5;6;7;8;9;10}
, {"";"";"";"";"";"";"";"";"";""}
)
ซึ่งประเมินว่า:
{"";2;"";4;"";6;"";8;"";10}
SMALL()
ฟังก์ชั่นแล้วจะกลายเป็น:
SMALL({"";2;"";4;"";6;"";8;"";10},ROW()-1+1)
และเนื่องจากSMALL()
ไม่สนใจสตริงนี่จึงเท่ากับ:
SMALL({2;4;6;8;10},ROW())
โปรดทราบว่าตัวเลขเป็นดัชนีของชื่อที่ไม่ว่างเปล่า สำหรับเซลล์B1
SMALL()
ผลตอบแทน2
สำหรับB2
มันกลับ 4 ฯลฯ สำหรับB6
และต่ำกว่ามันกลับ#NUM!
ข้อผิดพลาด (นี่คือสาเหตุที่มีIFERROR()
ฟังก์ชั่นมันแปลงข้อผิดพลาดเหล่านี้เป็นช่องว่าง)
ในที่สุดINDEX()
ฟังก์ชั่นดึงชื่อโดยใช้ดัชนี
นี่คือวิธีหนึ่งในการแสดงรายการค่าในขณะที่ไม่รวมเซลล์ว่าง ดูหน้าช่วยเหลือนี้สำหรับรายละเอียดเพิ่มเติม
สูตรในการทำเช่นนี้ต้องการแถวเหนือแถวข้อมูลแรก ส่วนหัวให้บริการวัตถุประสงค์ในตารางด้านล่าง
สูตรอาร์เรย์นี้ถูกป้อนใน B2:
=IFERROR(INDEX($A$2:$A$10,MATCH(0,COUNTIF($B$1:B1,$A$2:$A$10&"")+IF($A$2:$A$10=",1,0),0)),"")
เป็นสูตรอาร์เรย์ก็จะต้องเข้ามามีมากกว่าแค่CtrlShiftEnter Enterหากป้อนอย่างถูกต้อง Excel จะล้อมรอบสูตรด้วยเครื่องหมายปีกกา {} ในแถบสูตร
หลังจากป้อนสูตรแล้วให้คลิกเซลล์ B2 แล้วเติมสูตรลง
ในกรณีที่มีชื่อซ้ำที่จำเป็นต้องแสดงรายการสูตรอาร์เรย์นี้จะลบเฉพาะช่องว่างและไม่ลบรายการที่ซ้ำออก:
=IFERROR(INDEX(A:A,SMALL(INDEX(NOT(ISBLANK($A$2:$A$10))*ROW($A$2:$A$10),0),COUNTBLANK($A$2:$A$10)+ROW(C1))),"")
!
และวงเล็บเหลี่ยม