เชื่อมต่อเซลล์ที่เติมเท่านั้น


21

ขณะนี้ฉันมีสเปรดชีตเพื่อติดตามคะแนนในเกมไพ่ อาจมีผู้เล่นสองถึงห้าคน ฉันมีดังต่อไปนี้:

| Players  |
|----------|
| Dave     |
| Paul     |
| John     |
|          |
|          |

ตอนนี้ฉันใช้:

= JOIN( " vs " ; C10:C14 )

Dave vs Paul vs John vs vsแต่ปัญหาคือผมแล้วจบลงด้วย

มีวิธีที่จะพูดDave vs Paul vs Johnแต่ถ้าฉันมีผู้เล่นมากขึ้นDave vs Paul vs John vs Robด้วยสูตรเดียว?

คำตอบ:


26

ใช่โดยFILTERการจัดเรียงอาร์เรย์:

= JOIN( " vs " ; FILTER(C10:C14; NOT(C10:C14 = "") ))

ดังนั้นJOINวิธีการนี้จะทำงานกับเซลล์ที่ไม่ว่างเปล่าเท่านั้น

ฉันได้ตั้งสเปรดชีตตัวอย่างแล้ว

ตรวจสอบรายการฟังก์ชั่น Google Spreadsheets (ค้นหาFILTER)


16

ลองTEXTJOIN :

=textjoin(" vs ",1,C10:C14)

2
นี่คือคำตอบที่ดีที่สุด มันสั้นกว่าง่ายกว่าและอนุญาตให้คุณละเว้นค่าว่างเปล่า
Ricardo Amaral

1
ฉันมักจะอ่านทุกอย่างเพื่อหาคำตอบที่ดีที่สุดไม่ใช่แค่ "คำตอบที่ใช้การได้" :)
Ricardo Amaral

5

โซลูชันทั้งสองข้างต้นทำงานได้หากมีเซลล์อย่างน้อยหนึ่งเซลล์ที่มีข้อความ อย่างไรก็ตาม:

= JOIN(" vs ",SPLIT(JOIN("%",C10:C14),"%",0))

จะกลับมา%%%%ถ้า C10: C14 ว่างเปล่าและ

= JOIN( " vs " ; FILTER(C10:C14; NOT(C10:C14 = "") ))

จะกลับมา#N/Aถ้า C10: C14 ว่างเปล่า

อย่างไรก็ตามคุณสามารถแก้ไขวิธีแรกเล็กน้อยเพื่อแทนที่%สัญญาณด้วยสตริงว่างโดยการหุ้มสูตรด้วยSUBSTITUTEฟังก์ชันดังนี้:

=SUBSTITUTE(
   JOIN(" vs ",SPLIT(JOIN("%",C10:C14),"%",0)),    // text_to_search
   "%",                                            // search_for
   ""                                              // replace_with
 )

(แสดงหลายบรรทัดเพื่อความชัดเจน)


โปรดทราบ: "ด้านบน" ไม่มีคำตอบในบริบทจริงๆเนื่องจากสามารถเรียงคำตอบได้หลายวิธี
เบียร์

4

ฉันพบวิธีแก้ไขปัญหาอื่นแล้ว:

=JOIN(" vs ",SPLIT(JOIN("%",C10:C14),"%",0))

% สามารถเป็นสัญลักษณ์ใด ๆ ที่ไม่มีอยู่ในรายการเช่นเครื่องหมายจุลภาคหรือเครื่องหมายแอมเปอร์แซนด์หรือเครื่องหมายคำถาม


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