• Hi All

    Please note that at the Chandoo.org Forums there is Zero Tolerance to Spam

    Post Spam and you Will Be Deleted as a User

    Hui...

  • When starting a new post, to receive a quicker and more targeted answer, Please include a sample file in the initial post.

Flummoxed by indexing...

John Focht

New Member
I need help with creating a dynamic chart with non-contiguous data. I can't get the functions in the example from
http://chandoo.org/wp/2012/12/04/fo...ting-dynamic-charts-with-non-contiguous-data/
to work.

I have data being 'dumped' from a specialized database program into Excel. It has to be organized and collated first. The dumped data is put in worksheet 'Total Results' and organized via a VLOOKUP call into 'Organized Results'. Now I need to plot the data at a given depth interval, say more than 3 feet deep and less than or equal to 4 feet deep, as a function of position across a section of roadway. (This will need to be done for every chosen depth interval to a depth of up to 20 feet. The intervals were chosen so that only one value will occur in each interval i.e. there will not be values at both 3.5 and 4 feet, only one value - or no value.) For this exercise, 'A' values are on the left shoulder and 'F' values are on the right shoulder, with left-to-right positions in alphabetical order. (This will not always be the case.) (A through F shown in column C of 'Organized Results.')

Can someone look at my spreadsheet and help me? I will have between 5,000 and 10,000 data points when our lab is finished. And I don't have weeks to create these graphs manually. All help is deeply appreciated.
 

Attachments

  • Abbreviated Test Results.xlsx
    399.3 KB · Views: 4
There are several issues here

You are getting Arrays mixed up with Ranges
There are times when they can be used interchangeably, like in Sumproduct()
But in some of the areas of your formulas they cannot

I will look at this over the next day or so
 
Yes, that's what I am looking for. I will substitute other labels for "TA-1A", etc. But that's what I am trying to accomplish.
 
Any chance the instruction can be posted soon? My project is due tomorrow...and with 6,000 separate data points, I need an automated solution.
 
The chart for Moisture above is based on Two named Formula
If you select the chart and click on the Line, in the formula bar you will see them highlighted
upload_2016-9-21_9-51-28.png

They are Called PointID and Moisture
PointID is the X Value and Moisture the corresponding Y Value

Now goto the Name Manager in the Formula Name Manager Tab
You will see that
PointID: =T(OFFSET('Organized Results'!$D$1:$D$249,SubsetIndex-1,0,1,1))
Moisture: =N(OFFSET('Organized Results'!$L$1:$L$249,SubsetIndex-1,0,1,1))

They are using the Offset function to look at the Columns D and L respectively and are using an Offset of SubsetIndex

Now look at SubsetIndex:
=SMALL(IF((MC>0.1)*(Depth>=3)*(Depth<=4.01)=1, RWDL),ROW('Organized Results'!$A$1:INDEX('Organized Results'!$A$1:$A$249, COUNTIFS('Organized Results'!$L$4:$L$249, ">0.1",'Organized Results'!$F$4:$F$249,">=3", 'Organized Results'!$F$4:$F$249, "<=4.01"))))

Lets not try and understand how that works but go back to Excel
In a spare cell type =SubsetIndex and press F9
Excel will show you: ={51;94;134;175;216}

These are the offsets to the Moisture Cells where (MC>0.1)*(Depth>=3)*(Depth<=4.01)

So to repeat it for another Measure you will need to setup 3 Named Formula
for X Values, Y Values and an Offset array based on new criteria
If the criteria are the same you only need setup a new Y value Name as you can use the existing X (PointID) and Offset (SubsetIndex) names

Eg:
If the criteria are the same (MC>0.1)*(Depth>=3)*(Depth<=4.01)
and you want to chart Column I Liquid Limit
Add a new Name
Liquid:
=N(OFFSET('Organized Results'!$I$1:$I$249,SubsetIndex-1,0,1,1))

If the criteria are not the same (MC>1.1)*(Depth>=4)*(Depth<=9.01)
and you want to chart Column I Liquid Limit
Add 3 new Names


SubsetIndex2:
=SMALL(IF((MC>1.1)*(Depth>=4)*(Depth<=9.01)=1, RWDL),ROW('Organized Results'!$A$1:INDEX('Organized Results'!$A$1:$A$249, COUNTIFS('Organized Results'!$L$4:$L$249, ">1.1",'Organized Results'!$F$4:$F$249,">=4", 'Organized Results'!$F$4:$F$249, "<=9.01"))))

PointID2: =T(OFFSET('Organized Results'!$D$1:$D$249,SubsetIndex2-1,0,1,1))
Liquid2: =N(OFFSET('Organized Results'!$I$1:$I$249,SubsetIndex2-1,0,1,1))
 
Back
Top