Javascript to Calculate the Average of a column
I have a column of fields in my PDF that I am trying to calculate the average for.
My problem is that there are 7 fields, but all 7 may not be filled in so I think I need some kind of "if" statement that would only count the number of fields that have values. Then somehow work that into the rest of my calculation...
This is what I have so far...
(function () {
// Get all of the field values, as numbers
var v1 = +getField("column.0").value;
var v2 = +getField("column.1").value;
var v3 = +getField("column.2").value;
var v4 = +getField("column.3").value;
var v5 = +getField("column.4").value;
var v6 = +getField("column.5").value;
var v7 = +getField("column.6").value;
var v8 = +getField("column.7").value;
// Calculate the result and set this field value
event.value = (v1 + v2 + v3 + v4 + v5 + v6 + v7) / the number of fields that were filled in;
I'm pretty new to javascript. Any help would be greatly appreciated! THANKS
First, I woul write this function withou field references to make it more universial, and then I would make it a document level funcion so it could be used more than once in a PDF and easily brought into another PDF.
function Avg() {
// computer average of non-empty passed field names
var sum = 0; // sum of fields
var count = 0; // counter for non-blank fields
for(i = 0; i < arguments.length; i++) {
var iField = arguments[i]; // get the i element from passed arguments
var fField = this.getField(arguments[i]).value;
if(!(isNaN(fField)) ) {
// field is a number
if(fField.toString() != '') {
// field is not null or blank
sum += Number(fField); // add to sum
count++; // increment count
} // end not blank
} // end number
} // end loop through arguments
if(count != 0) {
// compute average if there is one or more items to average
return sum / count; // return average
} else {
return '';
} // end no average computed
} // end Avg function
Your custom calculation script then becomes:
event.value = Avg('column.0', 'column.1', 'column.2', 'column.3', 'column.4', 'column.5', 'column.6', 'column.7');
Similar Messages
-
How to calculate the average inventory in ABAP
Dear All,
Please find the below formula and this formula how to calculate the Average inventory at value.Please let me know the abap base tables and the corresponding fields.
Formula
Inventory Turnover = Cost of Goods Sold (COGS) / Average Inventory at value.
Thanks
Regards,
SaiHi Arivazhagan,
Thanks for your quick response .
The field MBEWH from the table is fulfill the average inventory at value.
For Eg :I want to calculate Inventory Turnover = Cost of Goods Sold (COGS)/
Average Inventory at value.
so shall i take Inventory Turnover = Cost of Goods Sold (COGS)/MBEWH
The above formula will meet my requirement to find the average inventory Turnover.
Thanks
Regards,
Sai -
How do I calculate the average of ONLY the populated fields?
I'm working on an Adobe form to streamline the process of summarizing course evaluations. To protect the anonymity of the students, instructors with 10 or fewer students are given a typed summary of the evaluation results. On the first half of the evaluation, the students are asked to rate a series of statements from 1-5. Three of these are highlighted on the summary form with the average response.
I've already set up the form with 10 unique boxes for each question and an 11th box which calculates the average. Each field is named according to the question number and the student's "number" (I arbitrarily gave each student a number so that each field would be unique):
i.e. #1. Questionquestionquestion. Q1S1 Q1S2 Q1S3 Q1S4 Q1S5 Q1S6 Q1S7 Q1S8 Q1S9 Q1S10 1AVG
The problem, of course, is that no matter how many students were actually in the class, the AVG field will always be calculated based on a group of 10...which isn't accurate or fair to the instructor. I thought about just changing the form and removing the unused fields from the equation each time I make up a new summary, but the point of creating a form was to make it as quick and easy as possible to bang these things out... Plus, some of my coworkers might be using the form from time to time and I'd have to explain what they have to do and if they don't have Adobe Acrobat then they can't actually make the changes and blah blah blah...it just gets ridiculous really quickly!
So anyway, I tried reading some other posts for similar questions in an attempt to figure out a custom calculation script for myself, but I just couldn't focus on it.
I was hoping someone could explain how to write a custom calculation script that will omit any fields which are left blank... Or, even better...is anyone willing to write it for me? At least just an example of the first guy, cause I could probably figure out how to get all the other ones from there.
Thanks.In formcalc the function Avg will calculate the average of only the fields with a value in them. So you would would put in the calcuate event of the average field:
$ = Avg(Q1S1,Q1S2,Q1S3,Q1S4, etc) -
The average energy impact column disappeared--how do I get it back?
In activity monitor, as the title says. The Average Energy Impact column disappeared. It isn't something you can "right" click and add. The only thing I can think I did was pick "all processes" in view.
Right-click on any of the other Headings (tone curve, detail, etc.) And put a checkmark in basic as well as any other sections that you want displayed.
-
the data I measured changed rapidly, so i want get the average value of the data
Do not tell me to use mean.vi , i have already know that.
and i got an idea which is add the data into an array every time, then sum of all the data value and take the result divide by the number of elements
but i dont know how to achieve that, anyone can build a simple vi to show me ? thank you
i have attached my vi which is using mean.vi to calc the average value, you can delete it and using in your way , thank you !
Solved!
Go to Solution.
Attachments:
EN-new.vi 274 KBHi I got a similar issue for averaging. I used the mean.vi from the math function but the average is rolling when i run it. I am trying to calculate the average for the data i read to the RT FIFO (which is around 40000 lines).I got the writing part working, however, when i am reading the data, I couldn't get it working. I thought i read the data as a 1-D array, and then pass it to the Mean.vi and then got the result. But seems like the mean is only showing the last data in the array.
Can someone help me with this??
Attachments:
FPGA-vi.png 242 KB
RT-vi.png 182 KB
RT-2mod.vi 515 KB -
Calculate the average with respect to time (moving average)
hello,
I am desinging a prototype to detect a kind of cardiac illnesses. I am obtaining beats per minute of heart. At the one of stages of project, I want to calculate the running or moving average of beats per minute at every last 10 seconds. For example, the measurement can continue for 10 minutes, but prototype must calculate the average of beats per minute for last 10 seconds. The time interval must be dynamic (as latest) and adjustable. Additionally, I can adjust the time interval, for example last 10 seconds or last 25 seconds. I will be completely grateful for your helps, thank you
Attachments:
heart beat final.vi 338 KBYou might want to look at the Mean PtByPt VI.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines -
Hey all
This is driving me crazy!
I need to calculate the average of a group of percentages excluding cells listed as '0%'.
Please see screen print below, numbers highlighted need to be averaged, when the table is filled out correctly some will remain '0%' whilst others will have a value, I want the average to be calculated only using numbers with a value greater than '0'.
FYI I am looking for the result to display in 'X2'
Thanks :-)you can use the averageif() function. Here is a simple example to get you started:
In this example the average if() function averages values that are non-zero
C2=AVERAGEIF(A1:E1,"<>0",A1:E1)
this is shorthand for select cell C2, then type (or copy and paste from here) the formula:
=AVERAGEIF(A1:E1,"<>0",A1:E1) -
How do i calculate the average of runs that have variable number of samples?
Hi
I am trying to calculate the average trajectory from lets say 4 runs, with varying sample size.
That is, if the the 4 runs have 78,74,73,55 samples respectively, How do I calculate the average of (78+74+73+55)/4 , (78+74+73)/3 and (78+74)/2 and 78/1 ?
Thank youI'm not sure you gave a sufficient information. Assuming that you just want to calculate a linear average of the data collected in consecutive runs, you have two simple methods :
1/ concatenate the data before calculating the mean.
Simple, but can occupy a huhe amount of space since all the data have to be stored in memory
2/ store only the means Mi and the corresponding number of data points ni and calculate a balanced mean : M = sum (ni x Mi) / sum (ni) )
The attached vi illustrate both methods.
Chilly Charly (aka CC)
E-List Master - Kudos glutton - Press the yellow button on the left...
Attachments:
Averages.vi 40 KB -
help..!
I want to calculate average interest rate in discoverer, question describes below:
1. the data have 4 columns, 1 account number, 2 balance, 3.interest rate, 4. product type 1, product type 2
2.average interest rate =
sum (product type1 account bal * rate / sum(product bal)).
a*sum(product bal) is sum every records column 2 according the type of product
b*every record need to calculate using balance to divide sum(product bal) for calculate the rate of the sum(product bal) of type of product
c* sum(b*) is what my answer rate.
3.
I need to display average interest rate in discoverer, and each product have a one average rate according user drill-up or drill-down product dimension.
*product dimension have two level
please tell me how to let every record divide by group sum(product bal)
or tell me how to solve this problem.
thanks!
davidHi David
Try using the AVG analytic function.
Best wishes
Michael -
Read a file, calculate the momentum of two columns and calc a summation of them
I have a file which das three columns. The first of them isn't important for this problem. I have to read the second and the thid ones, and then mutiply them (to calculate the momentum), if they are at the same line. After that I need to sum all the results that I calculated.
How can I do this?If all the data in the file are numeric values you can use the Read From Spreedsheet File VI to get the 2-D array of data. Then use the index array function and index out column 1 and 2. Then multiple the arrays together, and then there is a Sum array elements VI that should finish it off.
See the attached image
Attachments:
Temp.JPG 19 KB -
MDX - How to group results to calculate the average
Hi,
I have the following MDX query which selects total unique visits per day between a range of my choosing:
WITH MEMBER [Measures].[MyAvg] AS
Round( AVG(
EXCEPT([Dim Date].[Day Of Week].Members,
{[Dim Date].[Day Of Week].[All].&[1],[Dim Date].[Day Of Week].[All].&[7],[Dim Date].[Day Of Week].[All].UNKNOWNMEMBER}
), [Measures].[UniqueVisitsDay]
), 2)
SELECT { [Measures].[MyAvg] } ON COLUMNS,
NON EMPTY { [Dim Date].[Year Month Date].[PK Date].&[2013-03-01T00:00:00]:[Dim Date].[Year Month Date].[PK Date].&[2013-03-31T00:00:00] } ON ROWS
FROM
[MyCube];
Which gives me the following results:
01/03/2013 634
02/03/2013 16
03/03/2013 19
04/03/2013 698
05/03/2013 704
06/03/2013 692
07/03/2013 774
08/03/2013 755
09/03/2013 9399
10/03/2013 19990
11/03/2013 775
12/03/2013 835
13/03/2013 868
14/03/2013 900
15/03/2013 844
17/03/2013 19
18/03/2013 248
19/03/2013 920
20/03/2013 958
21/03/2013 1092
22/03/2013 798
23/03/2013 21
24/03/2013 10
25/03/2013 731
26/03/2013 770
27/03/2013 537
28/03/2013 300
29/03/2013 28
30/03/2013 8
31/03/2013 4
What I need to do is get the average of this set of results over the month. I am expecting this answer:
1478.233333 (which is total unique hits - 44347 / total rows - 30)
But when I change my MDX code to this:
WITH MEMBER [Measures].[MyAvg] AS
Round( AVG(
EXCEPT([Dim Date].[Day Of Week].Members,
{[Dim Date].[Day Of Week].[All].&[1],[Dim Date].[Day Of Week].[All].&[7],[Dim Date].[Day Of Week].[All].UNKNOWNMEMBER}
), [Measures].[UniqueVisitsDay]
), 2)
SELECT { [Measures].[MyAvg] } ON COLUMNS,
NON EMPTY { [Dim Date].[Year Month].[Mar 2013]:[Dim Date].[Year Month].[Mar 2013] } ON ROWS
FROM
[MyCube];
I get the following result:
MyAvg
Mar 2013 9868
Actual: 9868
Expected: 1478.233333
What am I doing wrong?
Thanks,
RobHi Rob,
In SQL Server Analysis Serviceswe do not have a measure Average aggregation type. Fortunately, we have Sum and Count, and since Average = Sum / Count, we can build our own Average aggregation when we need one. Here is a blog about how to create a average
measure, please refer to the link below.
Average Aggregation in Analysis Services
Regards,
Charlie Liao
TechNet Community Support -
How I manually calculate the Average Valuated Stock Value like in MC.3
In the R/3 transaction MC.3 the "Average Valuated Stock Value" help window shows a formula to calculate it.
AVSV = ( begining stock value + n stock value at months end ) / ( n + 1 )
What is the meaning of the N?. Where is this value come from.?
I'd really appreciate any help.Hi
N is the number of periods. The calculation with an example is as follows:
Op. Stock Value on 1.12.2006: 40
Cl. Stock Value on 31.12.2006: 80
Op. Stock Value on 1.1.2007: 80
Cl. Stock Value on 31.1.2007: 120
The above can be viewed in MB5B
In MC.3, if you choose the period 12.2006 to 01.2007, the calculations are as follows:
AVSV for 12.2006: {40+(1*80)}/2 = 60 [N = 1 period]
AVSV for 01.2007: {80+(1*120)}/2 = 100 [N = 1 Period]
Total AVSV for 12.2006 to 01.2007: {40+(2*120)}/3 = 93.33 [N = 2 Periods]
Hope this clarifies.
Thanks -
Calculate the average value of 10000 samples stored in a file. LVM with LabView
Hello, I'm using a NI 6034 to acquire through _ LabView a signal in volts from a pressure transducer, these data then save them to a file. Lvm using the "write to a file" (at least I think you call it or something like that). I would have 2 questions:
1) you can always using the virtual instruments to implement a block I calculate directly the average of these 10 thousand values without having to go to the star on excel every time?
2) is it possible to somehow remove the header that LabView a creates by default in the file. LVM when you save?
I hope someone will give me an answer because I'm really losing a lot of precious time to pass each time data from lvm file to the excel.
Thank you in advance for your advice.
Solved!
Go to Solution.Marco86,
1. You should be able to read the data directly from the .lvm file in LV. Use the Express VI Read from Measurement File. You can wire the Signals output to the X input of the Mean.vi from the Mathematics >> Probability & Statistics palette. LV will automatically insert a conversion from the Dynamic Data Type output of the Read to the 1D Array of Doubles that Mean needs.
2. I rarely use the Write to Measurement FIle Express VI so I am not sure whether you can completely suppress the header. If you use the Write to Spreadsheet File.vi you get a tab delimited text file containing only your data converted to text and delimiters. You can create you own headers by writing a string array to the file before writing the numeric data. Of course you can have complete control over everything in the file by using the low level file functions and data manipulation and string conversion functions.
Lynn -
How can i calculate the average in java
how can i calculate the avergae mark out of two marks for instance in like exam mark out
of two other ones
thanks for considering this messageAverage or Mean:
sum_of_N/N
Here N is the number of marks.
sum_of_N is the total sum of n(all marks added together)
public int average(int[] marks) {
int sum;
sum = 0;
for(int i=0;i < marks.length;i++) {
sum=marks[i]+sum; // keep adding to the total
return average = sum/marks.length;
// warning- using an int here can be a pitfall(we could have a decimal outcome).
} -
Problem in taking the average of a column and grouping by date
Hi all,
I created a logical column using a formula in "Administration". The formula is like;
Duration%=(Duration*100)/(X-Y).
Then, in "answers", I created a report using Duration% column and another column which is its average. I want to see the average of Duration% values grouped by date.
The numbers in the report are incorrect. What can be the reason for this? Does using logical column which is derived with a formula cause a problem when we take its average?
Thanks in advance for your help..use avg(Duration% by <"Date Table"."Date Level"> in the answers column.
substitute "Date Table" with your actual time dimension table name, and "Date Level" with your actual date column that you want to group by.
Maybe you are looking for
-
My high school has our email addresses linked with Gmail, but I would like to recieve my emails on my iPad2. If my school email ends in @education.nsw.gov.au but is still somehow linked with Gmail, how would I set that up using the mail account setti
-
Mass Cancellation of Inspection lots
Dear Experts, How to cancel the inspection lots collectively . Is there is any standard transaction for this ? Regards, Ram
-
How to open JSP session from a java application or an applet?
Hi, My problem is a bit challenging (at least for me) and its not about JSP but it is about a web application.. I couldnt find a better place to post this question I am sorry if this is not the right place to post it.. I need to enable users log into
-
Creating array of objects of class which extends Thread
getting NullPointerException can i not create thread array this way? class sample extends Thread { int i,id; public sample(int c) { id=c; public void run() { for(i=0;i<6;i++) System.out.println("Thread "+id+" "+i); public class thread e
-
How to install Tiger to external USB drive?
Hi! I have external 80 GB USB 2.0 LaCie Hard Drive and want to install Tiger to it. But i have some problems... I have bootable install DVD. I'm inserting it, waiting, then choose language. Then I'm starting Disc Utility, formatting whole drive to HF