แปลงสูตรใน Excel เป็นสูตร Array โดยไม่ต้องกด Ctrl-Shift-Enter?


3

คำถาม: Excel จะแปลงสูตรเป็นอย่างไร สูตรอาร์เรย์ โดยไม่ใช้ปุ่มลัด?

สูตรปกติ

Normal Formula (and result)

สูตรอาเรย์

Array Formula (and result)


1
ฉันชอบคำถามนี้จริงๆ Microsoft ไม่สอดคล้องกันในเรื่องนี้ ฟังก์ชั่นทุกอย่างสามารถดำเนินการผ่านเมนู - ยกเว้นฟังก์ชั่นนี้
nixda

@nixda =max(len) เฉพาะ?
Raystafarian

ไม่ @Raystafarian เขาหมายถึงการแปลงเป็นสูตรอาร์เรย์จากสูตรปกติ
David Michael Gregg

คำตอบ:


4

Excel มีสูตรดั้งเดิมหลายอย่างที่อนุญาตให้คุณสร้าง / ใช้อาร์เรย์ตัวอย่างเช่น

SUMPRODUCT()
INDEX()
OFFSET()    
SUMIFS()
COUNTIFS()
AVERAGEIFS()

การรู้สูตรดั้งเดิมเหล่านี้จะช่วยให้คุณหลีกเลี่ยงสูตรอาร์เรย์ CSE ในกรณีส่วนใหญ่

ตัวอย่างเช่นลองทำตามช่วงที่มีหมายเลข:

=LEN(MAX(INDEX(C2:C14,,1)))

นอกจากนี้จากการอภิปรายด้านล่างสูตรนี้จะใช้ได้กับทุกช่วงที่มีหมายเลขและไม่ใช่ / ผสม:

=MAX(INDEX(LEN(C2:C14),,1))

คุณจะปรับมันอย่างไรให้เป็น =max(len)?
Raystafarian

@ เรย์สตาฟาเรียนฉันได้เพิ่มตัวอย่างในโพสต์ของฉัน
CallumDA

นั่นคือการใช้ความยาวของจำนวนสูงสุดในขณะที่คำถามคือการยาวที่สุดของรายการในรายการ ย้อนกลับไป =max(len(index... ดูเหมือนจะไม่ให้ผลลัพธ์เดียวกัน ไม่วิจารณ์ +1
Raystafarian

1
อยากรู้อยากเห็นคุณสามารถเขียนสูตรเช่นนี้แม้ว่า =MAX(INDEX(LEN(C2:C14),,1)) สิ่งนี้จะระบุรายการที่ไม่ใช่ตัวเลข
CallumDA

1
คุณควรเพิ่มเข้าไปในคำตอบนั่นคืออยากรู้อยากเห็น และใช้ได้กับรายการที่ไม่ใช่ตัวเลขและรายการผสม!
Raystafarian

1

วิธีแก้ปัญหาหนึ่งสำหรับข้อ จำกัด นี้คือสร้าง VBA Sub ขนาดเล็กและกำหนดให้แป้นพิมพ์ลัดที่คุณเลือก

สิ่งนี้จะแปลงช่วงที่เลือกไปเป็นสูตรอาร์เรย์

Sub ConvertToArrayFormula()
    Dim rng As Range
    Dim arr As Range
    Set rng = Selection
    For Each arr In rng.Areas
        arr.FormulaArray = arr.Cells(1, 1).Formula
    Next
End Sub

โดยทั่วไปแล้วความคิดที่ดี แต่ถึงแม้จะมีชื่อเรื่อง OP ของฉันฉันก็อธิบายคำถามของฉันในโพสต์เองว่า การแทนที่ปุ่มลัดหนึ่งอันเพื่อการเอาชนะวัตถุประสงค์อื่น ตอนนี้ถ้าคุณสามารถแสดงให้ฉันเห็นวิธีการกำหนด Sub ให้กับปุ่มบนแถบเครื่องมือ - นั่นเป็นเพียงสิ่งที่ฉันกำลังมองหา!
David Michael Gregg

@ MyPetOcean กำลังปรับสูตรไม่ใช่ตัวเลือกใช่ไหม คุณไม่ได้อธิบายว่าทำไมคุณจึงต้องป้อนโดยไม่ต้องใช้ปุ่มลัด (ฉันคิดว่า "ปุ่มลัด" คุณกำลังพูดถึง Ctrl + Shift + Enter)
CallumDA

ฉันหมายถึงฉันต้องการหลีกเลี่ยง ใด ฮอต เหตุผลเบื้องต้นของฉันคือความเรียบง่ายในระยะยาว (และความจำ) สำหรับผู้ใช้ที่ไม่เข้าใจ แต่ประการที่สองมีเพียงแค่ ควร เพื่อเป็นอีกวิธีในการทำสิ่งนี้ ซอฟต์แวร์สำคัญอื่นใดที่มีคุณสมบัติที่สำคัญสามารถเข้าถึงได้ผ่านฮอตคีย์ของทุกสิ่ง
David Michael Gregg

0

คำตอบเดียวคือการพัฒนาโซลูชันของคุณโดยใช้ชื่อสำหรับทั้งช่วงและสูตร

ดังนั้นรูปลักษณ์ของสูตรของคุณอาจได้รับการปรับปรุงโดยการกำหนด 'v' เพื่ออ้างถึง = C2: C14 สูตร = MAX (LEN (v)) ยังคงต้องป้อนอาร์เรย์ แต่ถ้าคุณกำหนด 'n' เพื่ออ้างถึง = LEN (v) การคำนวณอาร์เรย์จะดำเนินการตามพฤติกรรมเริ่มต้นของสูตรที่ตั้งชื่อ ดังนั้น = MAX (n) ทำงานโดยไม่ใช้รายการ CSE


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