How do I compare times without hours? - time

I am admittedly bad at formulas so I apologize if this comes off as stupid:
I need to compare two times for my swimmers and can't figure out a clear way to write a formula to compare their time vs. a cut time they are shooting for.
Ex:
Swimmer has a 2:44.01 in her event, and needs a 2:41.96 for a specific meet.
In this instance, her time is in B3 and the cut time is in C3. How do I write a formula that will display the difference in those times in cell C4, right below the cut time?
Everything I have seen requires a hh:mm:ss.00 formula or similar but how do I write it so that I don't have so many stinkin 0's in each cell? I wish that it would allow a simple mm:ss.00 without needing hours to register as time.
My other issue is that in C4, where I want the difference to show up, how do I start that equation? Do I start with SUM or ELAPSED or what? I'm out of my league here so please help!

try:
=TEXT(VALUE("00:"&B2)-VALUE("00:"&C2), "m:ss.00")
...and format all fields as Plain text

Related

#REF! (Reference does not exist) error after sort

I'm probably making a really simple mistake here but I can't figure it out. I'm making a simple spreadsheet that tracks runners' last 5k time and then I take their time away from the slowest runner to give a 'handicap' time. This way all the runners should finish the race together next time.
Here's the data:
And the formula is
= MAX(D2:D16) - D2
When I do a sort (by the calculated start time column, I get the #REF! error (Reference does not exist. Like I say it's probably really simple, but I can't figure it out. Any help appreciated!
The formula you are using in F2 should be =MAX(D$2:D$16)-D2, otherwise it won't even work when you drag it down. And sorting it with from the menu obviously won't do anything, since if it's a formula you dragged down, it will autoupdate to still use the same row from column D. There is however a sort function you can use either in a different column (like in G2 =sort(F2:F16,1,1)) or you could change your F2 formula to =SORT(ARRAYFORMULA(MAX(D$2:D$16)-D2:D16),1,1), so both sorting and propagation down the column are done in one.

Subtracting multiple cells on Google Sheets + the use of IF ELSE

It's been weeks since I've been trying to solve this problem, I tried various formulas for this (ArrayFormula, ABS, SUMPRODUCT, using a negative sign on the cells), but I can't seem to get it right.
The correct way will always be manually subtracting the cells one by one but this will cause too much delay or problem if we have more than 100 rows on the sheets.
=if(D14<(E3-E4-E5-E6-E7-E8-E9-E10-E11-E12-E13),D14,E3-E4-E5-E6-E7-E8-E9-E10-E11-E12-E13)
Here's the link to the sheet: https://docs.google.com/spreadsheets/d/1fAPQHKupKglBAJpoxrcVqWP343m0P5QOj8zp1FvasEA/edit?usp=sharing
The overall idea for this is that the Total Purchased should be compared to the total sold. The 2201 value on the total sold is retrieved from another transactions sheet and it just totals every sold item, and then starting from E4 (170 in cell value) onwards, it decreases since we just need to know the number of sold items from that certain row.
Thank you very much for taking the time to read this. I'm looking forward to getting help from this as this stresses me for weeks now.
use cumulative function
=arrayformula(mmult(1*(transpose(row(D4:D))<=row(D4:D)),if(D4:D="",0,D4:D)))
and include in your formula in E4 as follows
=arrayformula(if(D4:D<($E$3-(mmult(1*(transpose(row(D4:D))<=row(D4:D)),if(D4:D="",0,D4:D)))),D4:D))

Statistics/Algorithm: How do I compare a weekly graph with its own history to see when in the past it was almost the same?

I’ve got a statistical/mathematical problem I’m stumped on and I was really hoping to get some help. I’m working on a research where I need to compare a weekly graph with its own history to see when in the past it was almost the same. Think of this as “finding the closest match”. The information is displayed as a line graph, but it’s readily available as raw data:
Date...................Result
08/10/18......52.5
08/07/18......60.2
08/06/18......58.5
08/05/18......55.4
08/04/18......55.2
and so on...
What I really want is the output to be a form of correlation between the current data points with the other set of 5 concurrent data points in history. So, something like:
Date range.....................Correlation
07/10/18-07/15/18....0.98
We’ll be getting a code written in Python for the software to do this automatically (so that as new data is added, it automatically runs and finds the closest set of numbers to match the current one).
Here’s where the difficulty sets in: Since numbers are on a general upward trend over time, we don’t want it to compare the absolute value (since the numbers might never really match). One suggestion has been to compare the delta (rate of change as a percentage over the previous day), or using a log scale.
I’m wondering: how do I go about this? What kind of calculation I can use to get the desired results? I’ve looked at the different kind of correlation equations, but they don’t account for the “shape” of the data, and they generally just average it out. The shape of the line chart is the important thing.
Thanks very much in advance!
I would simply divide the data of each week by their average (i.e., normalize them to an average of 1), then sum the squares of the differences of each day of each pair of weeks. This sum is what you want to minimize.
If you don't care about how much a graph oscillates relative to its mean, you can normalize also the variance. For each week, calculate mean and variance, then subtract the mean and divide by the root of the variance. Each week will have mean 0 and variance 1. Then minimize the sum of squares of differences like before.
If the normalization of data is all you can change in your workflow, just leave out the sum of squares of differences minimization part.

Need to count the cells where time is later than a given value

direct to the point
heres the image
i need to get only the time thats over 9am and sum them all up at cell E35
this may sound easy to you guys and tell me it is, but im sorry, i just cant, im still a noob at this.
please help, thank you.
The formula you need is COUNTIF. In your case, put the following formula in cell E35:
=COUNTIF(E4:E34, ">09:00")
Updated
I think this is what you actually want:
=SUMIF(E4:E34, ">09:00") - COUNTIF(E4:E34, ">09:00") * TIMEVALUE("09:00")
This will add up all the times in the N cells that exceed 9:00 am and subtract N lots of 9 hours from the total.

Design an algorithm to match trajectory?

I have a dataset in the form of (timestamp,latitude,longitude). I'm going to be given n entries where each entry is of the form of (timestamp,latitude,longitude). This is for one user.
User1:(timestamp1,latitude1,longitude1)....(timestamp_n,latitude_n,longitude_n)
Now let's say we have 100 users each has a set of points of (timestamp,latitude,longitude)
I want to know which set of users might have matching trajectory.
Matching trajectory would be the same route taken, hence in a given set of timestamps the latitude and longitude should be same or close enough as well as the timestamp should be same or close enough. Close enough can be about 30 seconds for timestamp while for space let it be like 200 metres. I can do this via a brute force approach and I'm looking for better solutions.
You can use a k-dtree or a range tree to index your data. These will let you efficient perform a range query over all three dimensions to your data.
This is quite unrelated to whether the algorithm will still be bruteforce or not.
What I want to present here is how to measure the difference between 2 paths.
It just that I think defining precisely how to quantify the difference will be important.
If you want something faster, then you can probably approximate this quantity later.
Ok, I think the difference between 2 paths is:
The average distance between 2 users over time.
You should be able to interpolate between 2 given data points to find out where the user is at any given time. Just linear interpolation might suffice.
When I say average over time, one would discretize the time so it is easier to compute.
Let's say:
The average distance between 2 users every 10 seconds period.
Edit: The above suggestion assumed that you care about "timing".
Since you mention the timestamp and all.
If you didn't care about it, you shouldn't have put it into the question in the first place.
Anyway, I kind of imagine that it is possible you want to just look at the path itself.
In that case, you could still use the above definition of path difference
simply by ignoring the actual timestamp and imagine that the users start at the same time at the begining of the paths.
The travel speed can be set in various ways... such as making both users complete the path at the same time no matter if one path is longer than another, or maybe just let both travel at the same speed.
Anyway, it all comes down to defining how do you want to measure the path difference.
You need to give more details in the question.

Resources