Showing posts with label Xcelsius Logic. Show all posts
Showing posts with label Xcelsius Logic. Show all posts

Monday, January 28, 2008

Xcelsius Templates

Here is the full collection of Xcelsius templates from this blog. You can always access the templates using the top navigation bar.

Xcelsius Connectivity

Passing Data from a Parent to Child SWF -Passing data from a parent Xcelsius file to a nested SWF.
Source Files

Connect Xcelsius to RSS/XML- Point and click connection to XML using XML maps.
Source Files


Xcelsius Logic Examples

Dynamic Xcelsius Ranking Logic- Dynamically rank information in your dashboard using logic.
Source Files

Dynamic Excel Lookup -An Excel logic-based approach to looking up multiple rows from a selection.
Source Files

Calculating the Current Quarter in Xcelsius- Use basic logic to calculate the current quarter within your SWF.
Source Files


Xcelsius Workarounds and Best Practices

List Builder Best Practices- Making the best of the Xcelsius list builder component.
Source Files

Multi-Series Graph Drill Down- Workaround for using drilldown feature with a multi-series chart.
Source Files

Special Characters in a Table- Using trend arrows and other special characters in a table or scorecard view.
Source Files

Calendar Component- How to leverage the calendar component dates.
Source Files

Create a Reset Button - A simple work around for re-setting a range of cells.
Source Files

Embed a SWF in Excel - Step by step instructions for embedding an Xcelsius model back into Excel.
Source Files

Monday, December 10, 2007

Xcelsius Graph Drilldown

When using the chart drill down capability inside of Xcelsius, there is a limitation prohibiting the configuration of a multi-series chart to insert into the same range. In other words… Xcelsius will not allow a user to click on bars from 2 different series to trigger 1 action, which can be a problem.

To invoke this problem, enable drilldown, select an insert-in cell, change the series dropdown, and select the same insert in cell. You will get an error message that reads the following:

“Insert In Range overlaps with other series’ Insert In Rage/ Please select non-overlapping Ranges for each series.” There is a workaround to get this working using the “Insert Series In:” option. By capturing the series that is currently selected, we can perform a lookup to retrieve the correct data.


Download Source Files

Monday, August 27, 2007

Xcelsius Formulas: Calculating Current Quarter

by Ryan Goodman

Many times, you want your dashboard to query data based on the current quarter, month, day or year. Within Xcelsius you can easily calculate these values. The trickiest part is calculating the quarter since that is not a natively supported function.


Download Source Files


  1. First you will declare the current date using the function: NOW().

  2. Next you will pull the month and year from this date using the MONTH() and YEAR() functions.

  3. Now is the trickiest part dictating the current quarter, which is not an available function. ROUNDUP(4*MONTH()/12,0)

  4. With the current quarter, you can now decide if you want to populate other quarters. In my case I want to populate a selector with the current quarter, last quarter, and the three previous quarters. In my example you can see how I took this idea a few steps further.

Monday, April 9, 2007

Calendar Date Formatting in Xcelsius

by Ryan Goodman

If you are working with dates within a connected Xcelsius dashboard, you can run into potential issues related to formatting. In most cases, you will require a specific format when you want to pass a date as a parameter to a web service.

Using the calendar component, you can insert and visualize a user defined date. Though you can set the cell format to modify the display of that date, Excel actually stores it using the 1900 date system. This simply means that the date Jan 1, 1900 has a true numeric value of 1, and Jan 1, 2007 has the true numeric value of 39083. The problem at hand is if you bind a web service connector component to a cell that is formatted, it will still use the true numeric value and not the formatted value that you see during runtime. Here is how you can remedy this:


Download the Source Files

  1. Bind a calendar component to an insert in cell
  2. Use the day, month, and year formulas to extract the individual values into their respective cells
  3. Use the concatenate to sting together the day, month, and year in your desired format.

Wednesday, March 28, 2007

Xcelsius Dynamic Lookup Logic: Selecting a range

by Ryan Goodman

Here is a scenario that many people have…. You have a connected model and the web service returns tabular data, but Xcelsius does not have the ability to lookup multiple rows of data with their selectors. Unfortunately, with Xcelsius 4.5 you have to rely on some Excel skills to assemble a layer of logic that will scale. The good news is I have put together a lightweight solution with the available supported Excel functions for Xcelsius. The bad news is that is painful to explain…

I did my best to point out the key components to make this model work. Your best bet is to download the Excel file and beat it up and look at the comments within the bold titles. I didn't feel that it was extremely important to build an Xcelsius model for this one, but if it would help, shoot me an email and I can put something up.
Click here to download the Excel source file

Friday, December 1, 2006

Xcelsius Dynamic Ranking Logic

by Ryan Goodman

I often get questions about dynamic raking within Crystal Xcelsius models so I have put together some lightweight logic that will enable you to rank up to several hundred rows of data during runtime. First we will look at the basic functions needed; then we will combine them into a simple model. Finally, I have provided a more complex model to show you how to generate some more compelling real time analysis using these functions.



LARGE and SMALLMATCHVLOOKUP
With an understanding of how these functions work, let’s combine them to create our dynamic ranking logic.
Source data
  1. Index cell: This index cell will be used eventually by a vlookup function once the rank is identified
  2. Source Data: This is the original source data that we will rank.
  3. Unique Identifier. The unique identifier addresses the issue of duplicate values. By carrying the value to the 100 thousandth place, this identifier will ensure that all values in your rank order are unique without affecting the values themselves. This is important because the logic will break down if there are duplicate values
  4. Adjusted: The adjusted values will be the range that we will actually perform the LARGE function. Because we have summed the original value and the unique identifier, we know that there are no duplicate values.
    logic
  5. Rank Number: We will use this rank number as our “K” within the LARGE function.
  6. Rank Lookup: This range uses the LARGE function to find the Nth value (#5) within our Lookup Row (#4)
  7. Match Row: Now that we know the Nth value we need to find the absolute row for which this value is located in the source data (#2).
  8. Finally, with the absolute row identified (#7), we can perform a VLOOKUP of this absolute row to return any other information we desire. In this case, it was the name.
    Now that you have the basics down you can check out this more advanced example and reverse engineer the source file. Let me know how this works for you or if you are able to build on this.