Thep Excel

Function.From – แปลงฟังก์ชัน Unary เป็นฟังก์ชันหลายพารามิเตอร์

Function.From ใช้เพื่อแปลงฟังก์ชันที่รับเฉพาะลิสต์เดียว (unary function) ให้กลายเป็นฟังก์ชันที่รับพารามิเตอร์แยกกัน

= Function.From(functionType as type, function as function) as function

By ThepExcel AI Agent
12 December 2025

Function Metrics


Popularity
3/10

Difficulty
8/10

Usefulness
5/10

Syntax & Arguments

= Function.From(functionType as type, function as function) as function

Argument Type Required Default Description
functionType type Yes ประเภท (type) ของฟังก์ชันใหม่ที่ต้องการสร้าง กำหนดจำนวนพารามิเตอร์และประเภทของแต่ละตัว
function function Yes ฟังก์ชัน Unary (รับพารามิเตอร์เป็นลิสต์เดียว) ที่ต้องการแปลง

Examples

แปลง List.Sum เป็นฟังก์ชันสองพารามิเตอร์
let ConvertedSum = Function.From( type function (a as number, b as number) as number, List.Sum ), Result = ConvertedSum(5, 3) in Result
Function.From แปลง List.Sum ให้รับพารามิเตอร์สองตัว (5, 3) แล้วสร้างลิสต์ {5, 3} ส่งให้ List.Sum ซึ่งรวมได้ 8
Power Query Formula:

let
    ConvertedSum = Function.From(
        type function (a as number, b as number) as number,
        List.Sum
    ),
    Result = ConvertedSum(5, 3)
in
    Result

Result:

8

แปลงฟังก์ชัน Custom Unary เป็นฟังก์ชันสามพารามิเตอร์
let ConcatenateList = (list as list) as text => Text.Combine( List.Transform(list, Text.From), "-" ), ConvertedConcat = Function.From( type function (a as text,…
สร้างฟังก์ชัน ConcatenateList ที่รับลิสต์และรวมเป็นข้อความ จากนั้น Function.From แปลงให้รับพารามิเตอร์สามตัวแยกกัน
Power Query Formula:

let
    ConcatenateList = (list as list) as text =>
        Text.Combine(
            List.Transform(list, Text.From),
            "-"
        ),
    ConvertedConcat = Function.From(
        type function (a as text, b as text, c as text) as text,
        ConcatenateList
    ),
    Result = ConvertedConcat("Hello", "World", "Power")
in
    Result

Result:

"Hello-World-Power"

แปลง List.Max เป็นฟังก์ชันหาค่าสูงสุดจากพารามิเตอร์แยก
let FindMax = Function.From( type function (x as number, y as number, z as number) as number, List.Max ), Score1 = 78, Score2 = 92, Score3 = 85, HighestScore =…
Function.From เปลี่ยน List.Max เป็นฟังก์ชันที่รับสามพารามิเตอร์ (78, 92, 85) จากนั้นหาค่าสูงสุดได้ 92
Power Query Formula:

let
    FindMax = Function.From(
        type function (x as number, y as number, z as number) as number,
        List.Max
    ),
    Score1 = 78,
    Score2 = 92,
    Score3 = 85,
    HighestScore = FindMax(Score1, Score2, Score3)
in
    HighestScore

Result:

92

สร้าง wrapper function สำหรับการคำนวณ Average
let CalculateAverage = Function.From( type function (score1 as number, score2 as number, score3 as number) as number, (list) => List.Sum(list) / List.Count(list…
สร้าง anonymous function ที่รับลิสต์และคำนวณค่าเฉลี่ย Function.From ช่วยให้เรียกได้เหมือน CalculateAverage(85, 90, 88) แทนการส่งลิสต์โดยตรง
Power Query Formula:

let
    CalculateAverage = Function.From(
        type function (score1 as number, score2 as number, score3 as number) as number,
        (list) => List.Sum(list) / List.Count(list)
    ),
    Result = CalculateAverage(85, 90, 88)
in
    Result

Result:

87.66666666666667

FAQs

Function.From ต่างจาก Function.Invoke ยังไง

Function.From ใช้เพื่อแปลงฟังก์ชัน Unary ให้กลายเป็นฟังก์ชันหลายพารามิเตอร์ ส่วน Function.Invoke ใช้เพื่อเรียกใช้ฟังก์ชันที่มีพารามิเตอร์เป็นลิสต์

ต้องใช้ Function.From ตรงไหน

สถานการณ์ที่ Function.Invoke มีประโยชน์คือเมื่อคุณต้องการสร้าง wrapper หรือปรับแต่งวิธีการรับพารามิเตอร์ของ unary function เพื่อให้ใช้งานได้สะดวกขึ้น

ทำไมไม่ใช้ฟังก์ชันปกติแทน

บางครั้ง unary function ในตัวของ Power Query ไม่สามารถเปลี่ยนแปลงได้ Function.From ช่วยให้คุณสร้าง interface ใหม่ที่เหมาะกับความต้องการของคุณได้

Resources & Related

Additional Notes

Function.From(functionType, function) ใช้ในสถานการณ์ที่คุณต้องการปรับแต่งฟังก์ชัน Unary (ฟังก์ชันที่รับพารามิเตอร์เป็นลิสต์เดียว) ให้กลายเป็นฟังก์ชันที่รับพารามิเตอร์แยกกันหลาย ตัว โดยฟังก์ชันนี้จะสร้างลิสต์จากพารามิเตอร์ที่ส่งมาแล้วส่งต่อให้กับฟังก์ชันต้นฉบับ

วิธีทำงานคือ Function.From จะรับพารามิเตอร์สองตัว:
1. functionType – กำหนดประเภทและลายเซ็นของฟังก์ชันใหม่ (จำนวนพารามิเตอร์และประเภทของแต่ละตัว)
2. function – ฟังก์ชันต้นฉบับที่รับเฉพาะลิสต์เดียว

ที่เจ๋งคือ Function.From ช่วยให้คุณสามารถใช้ฟังก์ชัน Unary เหล่านี้ได้เสมือนว่าเป็นฟังก์ชันปกติที่รับพารามิเตอร์แยก ทำให้โค้ดอ่านง่ายขึ้น ตัวอย่างเช่น List.Sum ในตัวมันเองต้องการลิสต์ แต่ Function.From ช่วยให้คุณใช้ได้เสมือนว่า Sum(a, b) แบบปกติ

ส่วนตัวผม ใช้ Function.From ตอนที่ต้องการสร้าง wrapper function หรือต้องการปรับแต่งวิธีการรับพารามิเตอร์ของฟังก์ชัน แต่สำหรับการใช้งานทั่วไปมักไม่ค่อยจำเป็นครับ 😎

Leave a Reply

Your email address will not be published. Required fields are marked *