I have been working on this for a little while now. My goal was to create a spreadsheet that automaticly adjusts your VE table according to a log. My idea came from Megalogviewer used with Megasquirt.
The one assumption most of this is based on is that when the rpm and map are between numbers on the tables, that the values are linear interpolated. If we find out this is not how to ECU functions then it can be changed.
It seems a little tedious to get setup at first but once once you run through it once its simple.
There are multiple sheets, The first one is instructions, that will get you going (hopefully).
To give you an example on how it works we will examine an idle log row from my car.
Say we are idling at 850 rpm at -16 map. The sheet will round up and down the rpm to the nearest 500, and the map up and down to the next highest and lowest value on the VE table.
In this case we get 500 and 1000 rpm, and -18 and -13 map.
This gives us the 4 cells that are being examined at the current values:
500 X -18, 1000 X -18, 500 X -13, 1000 X -13
For ease of calculation lets say these values are 25, 30, 35, 40, correspondingly.

So at 850 rpm and -16 map we are in between these 4 values. To find out exactly what value is being calculated we need to use interpolation.
So at our 850 rpm: to get the interpolation from 500-1000 rpm:
(850-1000)/(500-1000)= 0.3
1-0.3=0.7
This means that between 500 and 1000, 850 is 30% 500 and 70% 1000
Thinking about it, it makes sense because if we were at 501 RPM: (501-1000)/(500-1000)=499/500=0.998 , So we are 99.8% at 500 RPM.
We can do the same thing for the maps:
At out -16 map: interpolation from -18 to -13:
(-16-(-13))/((-18-(-13))= 0.6
1-0.6=0.4
This means that between -18 and -13, -16 is 60% -18 and 40% -13
Now we can find the percentages of each VE value that make up our calculated VE at our point by multiplying the row vs column percentages.

We can see that these percentages will add to 100%
Multiplying the percents by the VE numbers at those points we can get the calculated VE for our point.

So our calculated VE for 850 RPM and -16 Map is 32.5
A similar routine is used at each point with RPM vs Load to find out what the AFR is on the fuel table. If you have the fuel table flattened out then it will calculate out the that value. It is set up this way so that even if you don’t have the table flattened out, it will still calculated the needed VE to hit that AFR.
So lets say that at our point 850 RPM and -16 Map, the logged AFR was 12.00, and the targeted AFR is 14.7. By dividing (12.0)/(14.7)= 0.816.
This Percentage (81.6) is what we need to multiply by our current VE to get a new VE number that will mathematically corresponding with the new AFR
So from before our VE number was 32.5, 32.5(0.816)=26.52. This is our new VE number.
This could be achieved by changing any 1 of the 4 cells by an amount so after taking the percentages of each cell it results in 26.52. This would not give us a smooth table, so we need to make the result of the 4 cells equal to 26.52 by adding an amount to each cell proportional to the weight of each cell.
So to find the percentage change at each cell we do:
1+[(calculated VE - current VE)*(cells percentage)/(cells VE)]
So for our 800 RPM and -16 Map at the top left cell:
1+[(26.52-32.5)*(0.18)/(25)] = 0.967
So our upper left cell, 25 needs the be multiplied by .967 to get the new VE for that point.
This is done for all 4 cells involved.
At this point we have the needed changes for the 4 VE cells used at out idle of 850 RPM and -16 Map.
After all these percentages are found and recorded in relation to the point they modify. The points are then averaged at each point over the entire log, this makes up the VE % Modifier table.
These percentages are multiplied by your provided VE table and the new VE table is Generated.
Alright So I'm sure I messed something up along the way So please take caution when using this. Make sure you check the VE % modifier table(the upper one) To make sure it isnt trying to make some stupid change like 50%.
I have driven around and logged, plugged it in then tried it out again, and it is just about dead on.
Pivot tables will most likely do the same thing but this is pretty sweet and I believe it will be more accurate then rounding and averaging values like the pivot table does.
I’m working on an Excel version. Only a few changes need to be made as Excel using a different notation on referencing a cell on another sheet.
Right now the VE % modifier tables will only sum down to row 9994. So don’t use a log bigger then that, even if you do you better have a good computer because it will lock mine up while it is calculating.