12 Replies Latest reply: Nov 15, 2017 12:31 PM by Brian MacDonald

color banding on multiple rows (using rank() ?)

This seems like this should be easy but I cannot get this to work.  I want to alternate colors for rows of a table but the rows will be in groups of variable size.  I thought that I could use the rank function to denote the groups and then flag the rank as even or odd to control the color banding, but this is not working for me for some reason.  Here is some sample data:

Pt, Date, Product, Order

123, 1/1/2017, Apples, Order1

123, 1/1/2017, Pears, Order1

123, 1/1/2017, Oranges, Order2

123, 2/1/2017, Apples, Order3

123, 2/1/2017, Oranges, Order4

123, 2/1/2017, Bananas, Order5

123, 3/3/2017, Bananas, Order6

123, 3/3/2017, Pears, Order7

123, 3/3/2017, Apples, Order8

];

Here is what I am getting, The column Pt is first in the sort order...I know the rank function depends on sort order.

What I am after is this...

Thanks in advance for any help.  Feel free to suggest an easier way to do this.

• Re: color banding on multiple rows (using rank() ?)

Try,

if(mod(num#(Date(Date,'D')),2) = 0,red(),green())

• Re: color banding on multiple rows (using rank() ?)

Its an interesting solution, but in the example data I provided the 'D' for each date is an odd number so this formula colors the entire chart green.

• Re: color banding on multiple rows (using rank() ?)

PFA .

Used Expression is: if(mod(num#(Date(Date#(Date,'D/M/YYYY'),'D')),2)=0,White(),green())

• Re: color banding on multiple rows (using rank() ?)

All of these solutions depend on the assumption that the dates are consecutive in some way, either consecutive days or months, etc.  This assumption is not a good one for my data.  If I change the sample data to this:

Pt, Date, Product, Order

123, 1/1/2017, Apples, Order1

123, 1/1/2017, Pears, Order1

123, 1/1/2017, Oranges, Order2

123, 2/1/2017, Apples, Order3

123, 2/1/2017, Oranges, Order4

123, 2/1/2017, Bananas, Order5

123, 4/3/2017, Bananas, Order6

123, 4/3/2017, Pears, Order7

123, 4/3/2017, Apples, Order8

];

This solution does not produce the desired results.

• Re: color banding on multiple rows (using rank() ?)

Hi,

Can you try Something like this.

=if(Even(Day(Date))=0,Red(),Green())

• Re: color banding on multiple rows (using rank() ?)

May be like this

If(Even(RowNo(TOTAL)),Red(),Green())

• Re: color banding on multiple rows (using rank() ?)

Produces this result....not what I am after.

• Re: color banding on multiple rows (using rank() ?)

I apologize, my misunderstanding.

Try this :

In Script

and condition like this

If(Even(Flag),Red(),Green())

• Re: color banding on multiple rows (using rank() ?)

This method works if the data displayed in the chart are the complete contents of the loaded table.  However, the data in the table I want to display is the result of selections in the app and so this solution could also produce consecutive colored bands.

• Re: color banding on multiple rows (using rank() ?)

have you seen my solution?

• Re: color banding on multiple rows (using rank() ?)

Yes, I looked at it.  It depends on the assumption that consecutive dates in the chart are even/odd which is not a good assumption.  It is entirely possible that the selections made by the user will include all even days or all odd dates or random occurrences of either.