Thep Excel

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

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

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

ความนิยม3/10
ความยาก8/10
ประโยชน์5/10

อัปเดต 12 December 2025

Syntax & Arguments

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

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 หรือต้องการปรับแต่งวิธีการรับพารามิเตอร์ของฟังก์ชัน แต่สำหรับการใช้งานทั่วไปมักไม่ค่อยจำเป็นครับ 😎

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

fx
let
ConvertedSum = Function.From(
type function (a as number, b as number) as number,
List.Sum
),
Result = ConvertedSum(5, 3)
in
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 แปลงให้รับพารามิเตอร์สามตัวแยกกัน

fx
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

ผลลัพธ์"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

fx
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

ผลลัพธ์92
สร้าง wrapper function สำหรับการคำนวณ Averagelet 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) แทนการส่งลิสต์โดยตรง

fx
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

ผลลัพธ์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

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Function.From จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Function.FromFunction values
Expression functions (1)
Expression.Evaluate

Expression.Evaluate ใช้สำหรับประเมินผลนิพจน์ M ที่เก็บไว้เป็นข้อความ โดยสามารถระบุตัวแปรและฟังก์ชันที่ใช้ได้ในสภาพแวดล้อม ทำให้สามารถเขียนโค้ด M แบบไดนามิก

Function values (1)
Function.Invoke

Function.Invoke เรียกใช้ฟังก์ชันโดยส่งรายการอาร์กิวเมนต์เป็นพารามิเตอร์ ใช้สำหรับการเรียกฟังก์ชันแบบไดนามิก

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่