@silent() function

5.43K viewsQuantrix Feedback
0

Hi everybody.
The latest version of QM introduced the “meta” functions for inspecting item and category information about calculated cells. They are very useful.
Among them I have found a @silent() function. The help gives the following description:

@silent (Category)
Permutes the returned values from other meta functions for each item along the specified category.
Category:Category to permute with

Sorry, but I could not figure out what this function achieves.
Mike: may you please shed some light?
Thanks.

1

Hello Luca – thank you for posting:

I had to check with engineering on this one. 🙂 Its basically a way to return a single item multiple times along a different dimension… without the other dimensions values being part of what is returned. We had this in 3.6 but it was just using (categoryName). The @silent works better with the new meta functions you refer to.

The attached model may help.

Attachments

silent.model
0

Brilliant. I did not make the connection to the #Size error which is a constant thorn in my side when writing SELECT statements. Very useful tip.

0

Thank you for sharing Luca!

0

Finally I’ve got how useful the new “meta” @functions are!
They are used for creating node names (i.e. category, group, item with various nesting levels) and for composing range names.
They can be combined with the “:” operator, so if you want to calculate a cell name combining the “full” item names along its dimensions (let’s say categories A, B and C), you can write:
@level(A,1,-1):level(B,1,-1):level(C,1,-1)
or equivalently (and more shortly)
@level(A,*):level(B,*):level(C,*)
Please note that the “@” character must be used only once at the beginning of the expression.
And what about @silent()? It’s a magical remedy for the #size error that you get in formulas using select(value list,key list,key), when the key list is made of node names or range names. As an example, if you want to select elements from a two-dimensional value list by item name of a given category , the key list cannot be defined by the “old” @<category>, which returns a list sized as the category (nr of elements = nr of items), because key list and value list would have different size. In order to get a key list with the correct size, “repeating” the item name along the second category in the value list, you can use:
select(value:A:B;@item(A):silent(B);”A1″).
I enclose a simple model showing this in action.
Hope this helps some other user.

0

Thanks, Mike, now it’s crystal clear.