Skip to content

Instantly share code, notes, and snippets.

@dmonder
Forked from ImkeF/List.SelectPositions.pq
Created January 3, 2020 17:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dmonder/47699b2946fc59936fa445e5ebc2a9c7 to your computer and use it in GitHub Desktop.
Save dmonder/47699b2946fc59936fa445e5ebc2a9c7 to your computer and use it in GitHub Desktop.
let func =
(SelectionList as list, ListOfPositions as list, optional StartWithOne as number, optional FillWithNulls as number) =>
let
selectionList = List.Buffer(SelectionList),
listOfPositions = ListOfPositions,
StartPosition = if StartWithOne = 1 then -1 else 0,
Result = {List.Transform(listOfPositions, each selectionList{_ + StartPosition}), // null
List.Transform(listOfPositions, each selectionList{_+StartPosition}?), // 0
Table.RemoveRowsWithErrors(Table.FromColumns({List.Transform(listOfPositions, each selectionList{_+StartPosition})})) //1
}{List.PositionOf({null,0,1}, FillWithNulls)}
in
Result
, documentation = [
Documentation.Name = " List.SelectPositions
", Documentation.Description = " Selects all items from <code>SelectionList</code> that are on positions in <code>ListOfPositions</code>.
" , Documentation.LongDescription = " Selects all items from <code>SelectionList</code> that are on positions in <code>ListOfPositions</code>. For the behaviour of the optional parameters see: https://wp.me/p6lgsG-N8 .
", Documentation.Category = " List
", Documentation.Source = " https://wp.me/p6lgsG-N8 .
", Documentation.Author = " Imke Feldmann: www.TheBIccountant.com .
", Documentation.Examples = {[Description = " For details see: https://wp.me/p6lgsG-N8 .
" , Code = " List.SelectPositions({1..5}, {0, 3, 4})
", Result = " {1,4,5}
"]}]
in
Value.ReplaceType(func, Value.ReplaceMetadata(Value.Type(func), documentation))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment