รับการอ้างอิงจากเซลล์ที่ไม่ว่างเปล่า


0

ฉันต้องการความช่วยเหลือเกี่ยวกับฟังก์ชั่น ในคอลัมน์ AI มีรายการชื่อ แต่จะคั่นด้วยเซลล์ว่าง มีวิธีการแสดงชื่อเหล่านี้ในคอลัมน์ B แต่ไม่มีเซลล์ว่างหรือไม่?

ผลลัพธ์ควรมีลักษณะเช่นนี้:

ป้อนคำอธิบายรูปภาพที่นี่


@Bandersnatch: ขอบคุณที่ให้การสนับสนุนความพยายามของคุณในการปรับปรุงเว็บไซต์ แต่ - คุณดาวน์โหลดรูปภาพแล้วอัปโหลดใหม่หรือไม่ นั่นเป็นการสิ้นเปลืองทรัพยากร สิ่งที่คุณต้องทำคือแก้ไข Markdown; เพิ่ม!และวงเล็บเหลี่ยม
สกอตต์

Simona: ข้อมูลที่ดีและไม่ว่างเปล่าคือทุก ๆ แถว (เช่นแถวที่ 2)? หรือพวกเขากระจัดกระจายแบบสุ่ม?
สกอตต์


@Scott ขอบคุณ ฉันจะให้ความสนใจมากขึ้นในอนาคต
Bandersnatch

คำตอบ:


0

สูตรอาร์เรย์ต่อไปนี้จะทำงานแม้ว่าชื่อใด ๆ จะเหมือนกัน ป้อน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()ฟังก์ชั่นดึงชื่อโดยใช้ดัชนี


0

นี่คือวิธีหนึ่งในการแสดงรายการค่าในขณะที่ไม่รวมเซลล์ว่าง ดูหน้าช่วยเหลือนี้สำหรับรายละเอียดเพิ่มเติม

สูตรในการทำเช่นนี้ต้องการแถวเหนือแถวข้อมูลแรก ส่วนหัวให้บริการวัตถุประสงค์ในตารางด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

สูตรอาร์เรย์นี้ถูกป้อนใน 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))),"")

ขณะที่สูตรนี้ดูเหมือนว่าใช้งานได้ แต่จะใช้ได้กับชื่อที่ไม่ว่างเท่านั้น ชื่อที่เหมือนกันทั้งหมดจะถูกแยกออก
robinCTS
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.