จะจัดเรียงข้อความอาเรย์ได้อย่างไร?


0

ให้เซลล์ A1 มี "abccba" ตอนนี้ฉันเขียนสูตรในเซลล์ B1 =RIGHT(LEFT(A1,ROW(INDIRECT("1:"&LEN(A1))))) มันให้ค่า "a" หรือสตริงอาร์เรย์เป็น {"a"; "b"; "c"; "c"; "b"; "a"} ตอนนี้เมื่อฉันต่อสิ่งนี้เข้าด้วยกัน =CONCATENATE(RIGHT(LEFT(A1,ROW(INDIRECT("1:"&LEN(A1)))))) มันให้ "a" แต่ฉันคาดหวัง "abccba" ฉันผิดที่ไหน วิธีการเชื่อมสตริงอาเรย์ ขอบคุณ! ความนับถือ,

คำตอบ:


1

การต่อข้อมูลไม่ยอมรับค่าอาร์เรย์เป็นอาร์กิวเมนต์ ยอมรับเฉพาะค่าข้อความที่ไม่ต่อเนื่อง เมื่อคุณป้อนอาร์เรย์มันจะใช้ค่าแรกตามที่คุณได้พบแล้ว หากคุณต้องการส่งอาร์กิวเมนต์เดียวเป็นอาร์เรย์ของข้อความและให้ผลลัพธ์เป็นสตริงเดี่ยวของอาร์กิวเมนต์ทั้งหมดคุณต้องใช้ VBA นี่คือ UDF ที่จะทำเช่นนั้น:

Public Function JoinText(arr()) As String
    For i = LBound(arr) To UBound(arr)
        JoinText = JoinText & arr(i, 1)
    Next
End Function

และนี่คือสูตรที่จะใส่ในเซลล์ซึ่งจะต้องป้อนเป็นสูตรอาร์เรย์ด้วย Ctrl + เปลี่ยน + เข้าสู่ :

{=JoinText(RIGHT(LEFT(A1,ROW(INDIRECT("1:"&LEN(A1))))))}

Hi! มีสูตรโดยตรงไหม?
Hemant Rupani

1
ไม่ไม่มีฟังก์ชั่น Excel ในตัวที่สามารถรับอาร์กิวเมนต์เดียวกับจำนวนตัวแปรในอาร์เรย์และส่งคืนสตริงที่รวมองค์ประกอบเหล่านั้นทั้งหมด หากอาร์เรย์มีความยาวคงที่เสมอคุณสามารถสร้างสูตรที่ยาวมากเพื่อรวมเข้าด้วยกัน คุณลองโพสต์คำถามที่ใกล้กับงานจริงของคุณให้มากขึ้นได้ไหม? ตัวอย่างที่คุณให้มาเป็นวิธีที่ซับซ้อนมากในการรับผลลัพธ์ต้นฉบับของคุณ หากคุณโพสต์สิ่งที่มีรายละเอียดที่แน่นอนเราอาจสามารถให้ทางออกที่ดีกว่าที่คุณไม่ได้คิด
Engineer Toast

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