Hide a column of a specific Row-Grouped Table in RDLC - visual-studio-2012

I have a matrix which contains a rowgroup and groups my products based on the Category. I have three categories: Laptops, Tablets, Televisions. My first two categories contain columns i.e. RAM which I don't want to display for the Televisions. Each category is separated by a page break.
I'm trying to hide the column 'RAM' if the Category name is 'Televisions' but only for the specific page
My structure:
[Categories]
[ProductID] [Processor] [RAM] [Colour] [etc]
Desired result:
[Laptop]
[125] [Intel Pentium] [250 MB RAM] [Black] [etc]
Desired result:
[Television]
[126] [Ix TV processor] [White] [etc]
Current result:
[Television]
[126] [Intel Pentium] [need to hide this] [White] [etc]

It is possible to do. The reason you're having trouble with it is because the matrix column falls outside of the category row-grouping scope. To hide the entire column, you have to move the category group above it. The easiest way to do that is to nest your matrix inside of a list control. Put your Category grouping/page breaks at the List level, and then set your RAM column of the matrix (which is now entirely inside of the category grouping scope since it is inside the list control) visibility based on the value of the Category as follows:
=Iif(Fields!Category.Value = "Televisions",True,False)

Related

match substring against text values arranged in a excel table

I am trying to achieve this result: assign a category to a document based on its title, or part of its title.
Title
Category
correspondence
Correspondence
Note Transmission Correspondence
Correspondence
Advisors Evaluation Report
Report
Country Notes
Correspondence
Annual Portfolio Report
Report
Appointment Letter
Correspondence
The categories are arranged into a table (docCategories) where each row starts with a unique category name, and is followed by a set of labels that match entirely or partially with the document title.
Category
Label
Label2
Label3
Label4
Correspondence
Letter
Memo
Note
Correspondence
Report
Dashboard
Report
The formula will take the document title and check if it matches any of the labels (with wild cards), so to return the unique category in the first position in the same row of the matched label.
Appointment Letter -> matches label:letter -> cat:Correspondence
I have made it working with this formula to be copied in the Category column:
=INDEX(docCategories;MIN(IF(docCategories=A2;ROW(docCategories)))-1;MIN(IF(docCategories=A2;1)))
And only if the title is exact matching of the entire label (e.g. Correspondence -> matches label:correspondence -> cat:Correspondence).
I am looking to have it working for matching on part of the title (e.g. Appointment Letter -> matches label:letter -> cat:Correspondence).
I have tried and failed to change the docCategories=<title> into something that can match the substring of the title, even applying the SPLITEXT(<title>) it still fails to give me the expected result.
Who can think of a creative solution for this?
The following solution works for any number of categories and for any number of labels on any category. It also identifies if no labels were found and also if more than one label was found from a different category. Since the question doesn't specify any specific excel version tag I assume Microsoft Office 365 function can be used.
On cell I2 put the following formula:
=LET(rng, A2:E3, texts, G2:G9, lkupValues, B2:E3, categories, INDEX(rng,,1),
BYROW(texts, LAMBDA(text,LET(
reduceResult, REDUCE("",categories, LAMBDA(acc,c, LET(
lkup, XLOOKUP(c,categories, lkupValues), searchLabels, FILTER(lkup, lkup<>0),
IF(SUM(N(ISNUMBER(SEARCH(searchLabels,text))))=0, acc,
IF(acc="", c, "MORE THAN ONE CATEGORY FOUND"))
))), IF(reduceResult<>"", reduceResult, "CATEGORY NOT FOUND")
)))
)
and here is the corresponding output:
The last two rows Title column were added to test the Non-Happy paths.
Explanation
We use LET function to define the names to be used and to avoid repeating the same calculation. If in your excel version you have DROP function available, then the name: lkupValues can be defined as follow: DROP(rng,,1).
The main idea is to iterate over texts values via BYROW and for each text we invoke SEARCH function for all categories. When the first input argument of SEARCH is an array, it returns an array of the same shape indicating the start of the index position of the labels found in text or #VALUE! if no labels were found.
Note: SEARCH is not case sensitive, if that is not the case, then replace it with FIND.
We use REDUCE function to iterate over all categories to find a match. For each category (c) we find the corresponding labels via XLOOKUP. Since not all categories have the same number of labels, for example Report has fewer labels than the Correspondence category. We need to adjust it to remove empty labels. The name searchLabels filters the result to only non-empty labels.
For checking if labels were not found we use the following condition:
SUM(N(ISNUMBER(SEARCH(searchLabels,text))))=0
ISNUMBER converts the SEARCH result to TRUE/FALSE values. N function converts the result to equivalent 0,1 values.
If the condition is TRUE, it returns the accumulator (acc initialized to an empty string). If the condition is FALSE, some labels were found, then it returns the category (c) if acc is empty, i.e. no previous categories were found. If acc is not empty any previous category was found, so it returns MORE THAN ONE CATEGORY FOUND.
Finally, if the result of REDUCE (reduceResult) is an empty string, it means the accumulator was not updated after initialization, so no labels were found for any category and it is indicated with the output: CATEGORY NOT FOUND.

Multi-select fields on Generic Inquiry

How do you filter on multi-select fields on generic inquiry?
Assuming your data looks like this :
ROW VALUES
A 1,5
B 3,4,5
C 5
D 1,2,3
E 2,4
And you want too search for records where there is either 1 or 3. So it should show rows A, B & D. I'm not sure if its possible. So the alternative would be write a custom screen and manipulate via view delegate. I could be wrong though.
TIA
The PXMultiSelector editor control persists the values in string format
How to filter depends on the format. Email address for example have a pre-determined format. For those you can add a standard string filter like Field Contains c#d.com
That wouldn't work for numbers. If you search for number 1 in list 2,4,15 it would return the result because 15 contains 1. To workaround this issue you can add a custom unbound DAC field. In the DAC field property getter you can parse the value of the multi-selector field and reformat it to a pre-determined format like ,2,4,15, and filter on ,1, instead of 1.

Variance between gene probes in excel

I have a list of gene expression under different treatments for 61,005 probes, corresponding to different genes.
Each column represents a different treatment. Each row is gene expression for each probe.
Here is an example of my data:
GENE_ID McA McB McC McD
GENE:JGI_V11_100009 769.83 726.97 737.75 949.81
GENE:JGI_V11_100009 248.65 275.62 250.64 249.04
GENE:JGI_V11_100036 2199.36 537.89 465 654.59
GENE:JGI_V11_100036 489.29 438.26 431.44 629.78
GENE:JGI_V11_100036 1498.15 1132.76 898.17 986.82
GENE:JGI_V11_100044 438.66 488.17 421.1 371.86
GENE:JGI_V11_100045 341.65 352.59 351.7 290.02
GENE:JGI_V11_100062 7178.42 7234.89 8614.36 1917.37
GENE:JGI_V11_100062 2476.8 2869.94 2090.16 2131.18
As you can see, some genes have multiple rows (for each different probe). Is there a way I can get the variance between the probes for each gene?
I cannot do it manually due to the large file.
Thanks
Not sure if you are going for more complex ANOVA but if simply looking at difference from prior observation for same probe, consider adding a helper column as shown in image which counts the number of occurences of the probe ID
e.g. in A2 and filled down is:
=COUNTIF($B$2:B2,B2)
Then create a table out of your data with Ctrl + T.
Then Alt + N + + V to create a pivottable from this table.
Arrange the pivottable as follows:
Then for each column in the pivtottable data area (i.e. sum of McA etc) - right click and Show Values As > Difference From (selected your desired view)
I chose Show Values As
Calculation: Difference From
Base Field: ID
Base Item: Previous
Result:
As mentioned, you could choose a variety of different display methods.

Highlight Excel Cells Related to Two Different Multiple Values

Have a problem to solve. I am creating a file with category ID’s (numeric) and have different specification fields for each category, some of them are the same some are changing depending on category ID.
Let's say:
I have category ID’s for cell A2 (cat id: 111), A3 (cat id: 222), A4 - (cat id: 333) and so on.
Category “111” contain specifications like: Price; Condition; Size; Colour; Brand.
Category “222” contain specifications like: Price; Condition; Brand; Manufacture; Shape; Model.
Category “333” ………
My list looks like that:
A1-Cat ID B1-Price C1-Cond. D1-Size E1-Colour F1-Brand G1-Colour H1-Manufacture I1-Shape J- Model
A2-111
A3-222
A4-333
As you can see I have a list of specifications and different category ID’s related to a particular specification.
My question is: how can I highlight cells of each specification which is related only to particular ID. I have about 40 specifications and 15 different ID’s so it is frustrating every time scroll through the rows, remember ID that you work with and follow separate specifications sheet related to ID’s? Specifications must stay in a list all the time, leave empty cell if doesn’t match with ID.
Not sure if this is the best way so if any of you guys have other options to consider, please let me know.
Thank a lot for any answer and help.

Creating a limited drop-down List

So say I have a table x by y entries.
X is far too great, or changes often enough, that making X additional tables/lists/named ranges is absurd.
However, I need to make a drop-down list of some of y.
Specifically:
Name | A | B | C | ..
Yannis| 20 |Yellow| Green| ..
Mirrah| 400 |Purple|Yellow| ..
.
.
.
I need a drop-down select of Name to change the options in a different drop-down list, which is based off of B & C.
Normally you can do this with either a Filter or INDIRECT(). However, it is beyond unreasonable to create a unique table, or name define, for each entry in X.
It is possible to create a table with all the possible entries for B & C, if there was a way to filter a named define for a list based off of the first table (using vlookup(), most likely)
In layman's terms: I need list 1 to filter list 2 where list 1 is either enormous or subject to constant change.
Gah, so this:
=INDIRECT("'InfoDump'!" & ADDRESS(MATCH(C5,PkmList,0)+25,10))
put into the data validation list works, however it's only one entry, and I need 3.
simply adding commas and copies causes error messages.
The one entry that this supplies is correctly referenced (dynamically) from the table without any need for more tables/namedRanges.
C5 is where the first list is
PkmList is the NamedRange for the first column of the Table
+25 'cause the table starts at A25 (column title)
10 referencing the first of 3 columns I need in the second list.
Okay!
After some experimentation, this accomplishes what I was looking for:
=INDIRECT("'InfoDump'!" & (ADDRESS(MATCH(C5,PkmList,0)+25,10)) & ":" & ((ADDRESS(MATCH(C5,PkmList,0)+25,12))))
or, in some different terms:
=INDIRECT("'sheetName'!" & (ADDRESS(MATCH(DropDownOne,DropDownOneCriteria,0)+(AdjustRow),(AdjustColumn))) & ":" & ((ADDRESS(MATCH(DropDownOne,DropDownOneCriteria,0)+(AdjustRow),(AdjustColumn)))))
Data validation hates logic.
-
In the most basic sense:
Match(a,b,c) gets the location of 'a' in 'b' (c is the same as vlookup's exact match option)
Address(row,column) gets the "j26" address, you can (as I did) adjust from where you found the match. (in my case, 25 down 'casue the table actually started at A25, but the list started at '1'; then 10 - 12 across for the 3 options I needed to list)
indirect(txt) turns this into a list. more or less. use "'sheetName'!" for referencing a different sheet.
-
So in the end this gives you a "=A2:A4" in the Data validation bar, based on another list. Same as using the popular work around that is the fruit vegetable cabbage example, but this doesn't require you to make multiple named ranges. (Which means it works for a single large changing table).

Resources