TTest in Excel across multiple columns - excel

I have 56 columns that are of different lengths. I want to be a series of TTests between all of them. I know that the syntax in Excel is TTest(array1, array2, tail, type). Is there a fast way to do this with labeling? I know that manually there are 1540 combinations. I really do not want to type that many formulas out in Excel. So there are 56 columns. The first position in each column is a label for what data is in that column.
Thank you very much

I think the solution to your problem lays in the formula =OFFSET.
To display all solutions I wrote the numbers 1 to 56 (column number of first data set) in row 1 and 1 to 56 (column number of second data set) in column A and then you would only calculate the t-test for the lower half of this "cube".
This can be done with (here I just take always an array of length 100, because as far as I know empty cells will just be ignored by TTEST
=IF($A3<=B$1;"";TTEST(OFFSET(Sheet1!$A$1;0;$A3-1;100);OFFSET(Sheet1!$A$1;0;B$1-1;100);1;2))
I hope this helps.

Related

Excel Data Entry made faster with Macro?

I am currently trying write a macro in excel to help shorten the time that this will take. I have water sample data for 10 different manholes and each were sampled quarterly since 1994. Because of this, I have a total of 75 dates that I need to input per manhole for this spreadsheet. Each of these dates has 97 rows of information that is input into this sheet and then a space before going to the next date. My ultimate question is, how can I take the dates shown from the first image and copy the first one 97 times, then second 97 times without redundantly doing so. Example is the image attached.
In column A have an integer sequence, starting at 0 and going up. In column B, do integer division on column A (QUOTIENT). You'll integer divide by the number of times you want things repeated (97). Then in column C, use VLOOKUP, taking the value from column B as the index into your lookup table, to "copy" the values for dates.
If you have the same measurements for each date, you can use a new column that uses MOD on column A, then use that as the index for a second VLOOKUP into your measurements lookup table.

How to find two cells in a column that add up to a given number

Column A
50
25
50
75
25
50
50
25
Lets say I have the above column. I want to attempt to add up all numbers in Column A that add up to 100 and then display all the cells which match that criteria.
Is this even possible in Excel?
I've tried adding up each column one by one... eg: =if(a1+a2=100,1,0) and fill down, but this obviously doesn't do it for the entire range.
First: does it have to be only the sum of two numbers or more? If it may be more, then you can find a solution here: https://www.extendoffice.com/documents/excel/3557-excel-find-all-combinations-that-equal-given-sum.html
Otherwise I have a quick and dirty way of achieving what you need. If you put a transposed row with the same numbers above (with paste special) it's really easy. You create a table like in the drawing, write this formula in the first cell:
=(100 = $A2+B$1)
Then drag the formula to all other cells (it will adjust itself) and you can clearly see for all the sums if they equal 100.
I have a dutch Excel-version where "WAAR" is true and "ONWAAR" is false.

Get highest values across columns

I have a worksheet with colums of names and amounts. The names are in (C2:C33,J2:J33,Q2:Q33,X2:X33). The amounts are in (G2:G33,N2:N33,U2:U33,AB2:AB33).
What I'm trying to do is find the highest 8 amounts, with the coresponding name. Meaning, for example - the name in C3 corresponds to the amount in G3, the name in J3 corresponds to the amount in N3, etc.
Using:
=LARGE((G2:G33,N2:N33,U2:U33,AB2:AB33),1)
I am able to find the top 8 values (by changing the 1 to 2, 3, 4, etc.). I couldn't figure out how to 'bring along' the name with that, so I kept searching. I found an explanation that gave me this:
=INDEX($C$2:$C$33,MATCH(1,INDEX(($G$2:$G$33=LARGE($G$2:$G$33,ROWS(N$36:N36)))*(COUNTIF(N$36:N36,$C$2:$C$33)=0),),0))
Copied down 8 cells will give me the names of the highest 8 combinations, but only from that first grouping of column C using column G values.
I've been searching for how to do this for the past few weeks, and I've run out of ideas. I don't know if I can modify the first formula to also grab the names, or the second formula to go across the other 3 corresponding groups. Once I get the top 8 names and amounts on the first sheet, I need to compare those to the top 8 on more than 100 other sheets to get the top 8 overall.
Does that make sense, and is it even possible? Do I need to use VBA? I'm running Excel 2010, but I don't know if the solution will be version specific. A thousand thanks if someone can figure this one out for me!
Not completely sure what you are asking for but here is a set of normal excel code that will provide you with the first instance of the highest value and return it's corresponding cell.
=INDEX(C2:C33,MATCH(MAX(G2:G33),G2:G33,0),1)
If you are asking for the 8 highest values in that column... you would use
=INDEX(C2:C33,MATCH(LARGE(G2:G33,[replace with 1-8]),G2:G33,0),1)
Edit: Of course it won't work if there are two numbers with the same value. In that case I would use VBA, pull the numbers into a 2D array and reorder the array based on the values in column G.

Getting the average of values who share a value in a different column in Excel

I am messing around with Excel 2007 and I'm looking for a solution regarding finding the average of values who share a value in a different column.
The values in column A are all numbers running anywhere from 0 to several dozen. Column B has either Yes or No in it, one for each row. What I am looking for is being able to calculate the average of all values in column A who share the same word in column B.
Initially both will be empty, and only after the field in column A has been filled will column B be filled. The value of column A does not always mean that it always have the same value in column B, meaning that that two instances of the number 8 in A can mean that either, both or neither values in B will be Yes.
I am looking for two formulas to give me these averages: one average for all the Yes numbers and one for all the No ones, but not in VBA.
Thank you in advance!
Not sure I understand, but please try say in D1 and copied down one row:
=AVERAGEIF(B:B,C1,A:A)
where C1 is Yes and C2 is No.

How to convert 1min OHLC data into 5min OHLC data

I'm trying to convert 1 minute OHLC (Open/High/Low/Close) data into 5 minute OHLC data in Excel 2013. So far I know the principle. Open has to take the open value every 5 rows, similarly for Close. Min/Max is also understandable. Unfortunately Excel can't understand that I want to get Min/Max from rows 0-5, 5-10 etc. it goes 0-5, 1-6, 2-7 etc.
I was also trying to use AVERAGE somehow but it's pointless since its output doesn't correspond with reality at all. From some more research I think I will have to create a macro from functions AVERAGE, OFFSET, INDEX and MATCH and that's where my struggle begins. I have no idea how to construct that formula.
Here's a picture of how it looks after using Filter on the Count Column:
Add a column (assumed to be A) on the left with 0 as a label and =IF(MOD(B2,6)=0,1+A1,A1) in A2 copied down. Subtotal for each change in 0 and use Count on all the other columns. Change the first subtotal row formulae to be:
ColumnC: =C2
ColumnD: =SUBTOTAL(4,D2:D6)
ColumnE: =SUBTOTAL(5,E2:E6)
ColumnF: =F6
Filter for ColumnA contains c and copy formulae down.
Edit
pandas library of Python would do it easily. Give it a try

Resources