Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
Mederic
Post Patron
Post Patron

Add Invoke Custum Function

Hello,
I would like to create a Invoke Custum function and then add it in a list/table.
I was thinking of a code that would look like the image attached but I don't know how to solve it and also it could work?

 

Thanks in advance

 

Best regards

 

 

 

 

 

()=>

let
    fct = Text.Select,    // Function name in Cell C3 in Excel
    text = txt,           //Text = Hello the Word 2023 in Cell C4 in Excel
    ListArgument = arg,   // ListArgument = Table Range C7:C28 in Excel
    res = fct(text, ListArgument)
in
    res

 

 

Argument
{"0".."9"}
{0..9}
{"0".."10"}
{"0..10"}
"4"
{"0", "1", "2"}
{0, 1, 2, 3}
{"2, 3"}
"20"
"A"
"a"
{"H","T"}
{"H", "o", "3" 
{"A".."z"}
{"A".."Z"}
{"a".."z"}
"H,o"
"H", "o"
"ab"
{"A".."Z", "0".."9"}
{"A".."Z", " ", "0".."9"}

 

 

 

 fx_Text.jpgfx_Text2.jpg

7 REPLIES 7
Mederic
Post Patron
Post Patron

Hello,

I tested another way with @slorin idea using Expression.Evaluate
This works for a single value.
I don't know how to create a function and then apply it to a list
Not sure if this is possible.

Thanks in advance

Best regards

 

let
    TextParam = text,  //Excel.CurrentWorkbook(){[Name="Texte"]}[Content]{0}[Texte]
    Fct = Text.Select,
    ListParam = Expression.Evaluate(Argument),  //Excel.CurrentWorkbook(){[Name="Argument"]}[Content]{0}[Argument],
    Expression = Expression.Evaluate(Fct(TextParam, ListParam))

in
    Expression

 

 Expression.Evaluate Text.Select.jpg

Expression.Evaluate Text.Select_2.jpg

slorin
Super User
Super User

Idée intéressante.

Personnellement j'utilise constamment le site officiel avec toutes les fonctions et ça me va. 

Le nombre d'arguments de chacune est variable ainsi que la typologie (liste, table, texte, date, nombre...) et je ne vois pas trop comment faire pour que l'utilisateur indique en C3 la fonction et que le reste suive. 

Je n'ai pas Excel sous la main pour tester votre code mais ça m'étonne que ça fonctionne sans  Expression.Evaluate pour convertir le contenu de C3 en fonction et/ou Function.Invoke pour appeler cette fonction dans la requête 

Stéphane 

Je m'aide également du site officiel mais je pensais regrouper plusieurs fonctions de même type dans une matrice (voir capture).

J'aurais plusieurs matrices selon des groupes de fonctions homogènes...

L'autre idée était effectivement d'avoir les fonctions dans une liste déroulante.

Le code fx() que j'ai indiqué, était pour illustrer la demande.

Effectivement, Expression.Evaluate est une piste....

Merci

Cordialement

Text_Function.jpg

 

slorin
Super User
Super User

Bonjour

D'après votre copie d'écran vous travaillez en français.

Text.select n'accepte en second argument que des caractères uniques. Donc "0", "1" et non 0 ,1 qui sont des nombres et non du texte.

"10" , "20" ou "ab" ont 2 caractères. D'où l'erreur renvoyée.

Quel est l'objectif final ?

Stéphane 

Bonjour Stéphane,

Je travaille effectivement en français 🙂,

Je souhaite faire une documentation de toutes les fonctions Power query,

Je voulais indiquer aussi les cas d'erreurs, ceux notamment que vous avez cités.

Sur l'image de mon post #1, j'ai mis manuellement les résultats et voudrais obtenir la même chose avec PQ

Mais pas certain qu'il soit possible

Cordialement

Mederic
Post Patron
Post Patron

Hello @ThxAlot ,

Thank you for your reply, unfortunately I can't get it to work.
It gives errors all over the column.
Does it work on your side?
If that's the case, I'll do it properly again and apply your suggestions.

Maybe I'm not missing much...!!

Best regards

ThxAlot
Super User
Super User

(argText as nullable text, argList as nullable list) =>

let
    Fct = Text.Select,    // Function name in Cell C3 in Excel
    Text = argText,           // Text = Hello the Word 2023 in Cell C4 in Excel
    ListArgument = argList,   // ListArgument = Table Range C7:C28 in Excel
    Res = Fct(Text, ListArgument)
in
    Res


Expertise = List.Accumulate(


        {Days as from Today},


        {Skills and Knowledge},


        (Current, Everyday) => Current & Day.LearnAndPractise(Everyday)


)



Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Kudoed Authors