หากคุณกำลังมองหาวิธีที่ใช้ฟังก์ชันแผ่นงานอย่างเคร่งครัดอาจเป็นไปได้ว่านี่อาจไม่ใช่โซลูชันที่แนะนำ แต่ที่นี่ฉันใช้ UDF ขนาดเล็ก (ฟังก์ชันที่กำหนดโดยผู้ใช้) เพื่อทำให้งานง่าย
UDF นี้ใช้ในช่วงและส่งกลับอาร์เรย์ของ Max ของแต่ละคอลัมน์ในช่วงนั้น
กด ALT + F11 เพื่อเข้าถึงตัวแก้ไข VBA แทรกโมดูลจากเมนูแทรก ตอนนี้ใส่รหัสต่อไปนี้ลงไป
Function Ret_Arr(inpt As Range) As Variant
Dim v As Variant
ReDim v(1 To inpt.Columns.Count)
For i = 1 To inpt.Columns.Count
v(i) = Application.Max(inpt.Columns(i))
Next i
Ret_Arr = v
End Function
โปรดทราบว่าไม่มีการตรวจสอบมากใส่ไว้ในรหัสพื้นฐานนี้เพื่อให้มีประสิทธิภาพในกรณี
สิ่งนี้ใช้ในช่วงและส่งกลับอาร์เรย์ของ Max จากแต่ละคอลัมน์ที่คุณสามารถใช้ในสูตรอาร์เรย์ของคุณ
บันทึกรหัส VBA และแผ่นงานเป็นแผ่นงานที่เปิดใช้งานแมโคร XLSM ในกรณีที่คุณใช้ Excel 2007 ขึ้นไป
ในตัวอย่างข้อมูลตัวอย่างนี้อยู่ในเซลล์ A1: D8 ใน E2 ให้ใส่สูตรต่อไปนี้แล้วกด CTRL + SHIFT + ENTER จากภายในแถบสูตรเพื่อสร้างสูตรอาร์เรย์
สูตรจะต้องอยู่ในเครื่องหมายปีกกาเพื่อแสดงว่าเป็นสูตรอาร์เรย์
=SUM(IF($A2:$D2>=Ret_Arr($A$1:D1),1,0))
ตอนนี้สำหรับแต่ละช่วงข้างบน Ret_Arr จะส่งคืนอาร์เรย์ของ Max ของแต่ละคอลัมน์ หากคุณไม่ผ่านช่วงที่ถูกต้องไปยัง Ret_Arr คุณอาจได้รับผลลัพธ์ที่ผิดพลาด ดังนั้นหากคอลัมน์ที่มีปัญหาของคุณคือ A ถึง D โปรดตรวจสอบให้แน่ใจว่าส่งผ่านช่วงของคอลัมน์ A ถึง D ไปที่ UDF