I'm making a time-spending tracker based on the work I do every hour of the day.
Now, suppose I have 28 types of work listed in my tracker (which I also have to increase from time to time), and I have about 8 significance values that I have decided to relate to these 28 types of work, predefined.
I want that, as soon as I enter a type of work in cell 1 - I want the adjacent cell 2 to get automatically populated with a significance value (from a range of 8 values) that is pre-definitely set by me.
Every time I input a new or old occurrence of a type of work, the adjacent cell should automatically get matched with its relevant significance value & automatically get populated in real-time.
I know how to do it using IF, IFS, and IF_OR conditions, but I feel that based on the ever-expanding types of work & significance values, the above formulas will be very big, complicated, and repetitive in the future. I feel there's a more efficient way to achieve it. Also, I don't want it to be selected from a drop-down list.
Guys, please help me out with the most efficient way to handle this. TUIA :)
Also, I've added a snapshot and a sample sheet describing the problem.
Sample sheet
XLOOKUP() may work. Try-
=XLOOKUP(D2,A2:A,B2:B)
Or FILTER() function like-
=FILTER(B2:B,A2:A=D2)
You can use this formula for a whole column:
=INDEX(IFERROR(VLOOKUP(C14:C,A2:B9,2,0)))
Adapt the ranges to your actual tables in order to include in the second argument all the potential values and their significances
This is the formula, that worked for me (for anybody's reference):
I created another reference sheet, stating the types of work & their significance. From that sheet, I'm using either vlookup, filter, xlookup.Using gforms for inputting my data.
=ARRAYFORMULA(IFS(ROW(D:D)=1,"Significance",A:A="","",TRUE,VLOOKUP(D:D,Reference!$A:$B,2,0)))
I've set up a Google Sheets workbook that synthesizes data from a few different sources via manual input, IMPORTHTML and IMPORTRANGE. Once the data is populated, I'm using INDEX MATCH to filter and compare the information and to RANK each data set.
Since I have multiple data inputs, I'm running into a persistent issue of names not being written exactly the same between sources, even though they're the same person. First names are the primary culprit (i.e. Mary Lou vs Marylou vs Mary-Lou vs Mary Louise) but some last names with special symbols (umlauts, accents, tildes) are also causing errors. When Sheets can't recognize a match, the INDEX MATCH and RANK functions both break down.
I'm wondering how to better unify the data automatically so my Sheet understands that each occurrence is actually the same person (or "value").
Since you can't edit the results of an IMPORTHTML directly, I've set up "helper columns" and used functions like TRIM and SPLIT to try and fix instances as I go, but it seems like there must be a simpler path.
It feels like IFS could work but I can't figure how to integrate it. Also thinking this may require a script, which I'm just beginning to study.
Here's a simplified example of what I'm trying to achieve and the corresponding errors: Sample Spreadsheet
The first tab is attempting to pull and RANK data from tabs 2 and 3. Sample formulas from the Summary tab, row 3 (Amelia Rose):
Cell B3: =INDEX('Q1 Sales'!B:B, MATCH(A3,'Q1 Sales'!A:A,0))
Cell C3: =RANK(B3,$B$2:B,1)
Cell D3: =INDEX('Q2 Sales'!B:B, MATCH(A3,'Q2 Sales'!A:A,0))
Cell E3: =RANK(D3,$D$2:D,1)
I'd be grateful for any insight on how to best index 'Q2Sales'!B3 as the correct value for 'Summary'!D3. Thanks in advance - the thoughtful answers on Stack Overflow have gotten me this far!
to counter every possible scenario do it like this:
=ARRAYFORMULA(IFERROR(VLOOKUP(LOWER(REGEXREPLACE(A2:A, "-|\s", )),
{REGEXEXTRACT(LOWER(REGEXREPLACE('Q2 Sales'!A2:A, "-|\s", )),
TEXTJOIN("|", 1, LOWER(REGEXREPLACE(A2:A, "-|\s", )))), 'Q2 Sales'!B2:B}, 2, 0)))
I built a pymc3 model using the DensityDist distribution. I have four parameters out of which 3 use Metropolis and one uses NUTS (this is automatically chosen by the pymc3). However, I get two different UserWarnings
1.Chain 0 contains number of diverging samples after tuning. If increasing target_accept does not help try to reparameterize.
MAy I know what does reparameterize here mean?
2. The acceptance probability in chain 0 does not match the target. It is , but should be close to 0.8. Try to increase the number of tuning steps.
Digging through a few examples I used 'random_seed', 'discard_tuned_samples', 'step = pm.NUTS(target_accept=0.95)' and so on and got rid of these user warnings. But I couldn't find details of how these parameter values are being decided. I am sure this might have been discussed in various context but I am unable to find solid documentation for this. I was doing a trial and error method as below.
with patten_study:
#SEED = 61290425 #51290425
step = pm.NUTS(target_accept=0.95)
trace = sample(step = step)#4000,tune = 10000,step =step,discard_tuned_samples=False)#,random_seed=SEED)
I need to run these on different datasets. Hence I am struggling to fix these parameter values for each dataset I am using. Is there any way where I give these values or find the outcome (if there are any user warnings and then try other values) and run it in a loop?
Pardon me if I am asking something stupid!
In this context, re-parametrization basically is finding a different but equivalent model that it is easier to compute. There are many things you can do depending on the details of your model:
Instead of using a Uniform distribution you can use a Normal distribution with a large variance.
Changing from a centered-hierarchical model to a
non-centered
one.
Replacing a Gaussian with a Student-T
Model a discrete variable as a continuous
Marginalize variables like in this example
whether these changes make sense or not is something that you should decide, based on your knowledge of the model and problem.
I'm currently working an a very simple project management template.
The Idea is that after entering a start and end-date columns will show up as a very simplistic gantt chart (conditional formating).
Everything works fine, until "year" comes into consideration. Since it is a several years lasting project and we work with calenderweeks it is essential that the work package is only visualized in its specific year.
So I came up with the following (rough'n'dirty) formular (example from cell K3):
=and(if(K$2>=$F3;1;0);if(K$2<=$H3;1;0);if(or(right($E3;4)=K$1;1);(right(G3;4)=K1;1;0)))
This is the document: https://docs.google.com/spreadsheets/d/15F1uBnoHMuJqc_w0X04U5-ZCQ_6mgO_HJqvN5U28cog/edit?usp=sharing
Problem: GoogleSpreadsheets only alows three arguments with IF. But I do not know how to structure it otherwise...
Thankful for any suggestion!
Cheers,
Matt
This might be what you are looking for, ties the start week/ end week and year together for comparison.
=IF(AND(
(K$1&TEXT(K$2;"00")) >=(RIGHT($E$3;4)&TEXT($F$3;"00"));
(K$1&TEXT(K$2;"00")) <=(RIGHT($G$3;4)&TEXT($H$3;"00")))
;1;0)
I keep receiving an error message that my IF statement has too many arguments. I have used this formula in other excel workbooks and it has worked. Can anyone see what the problem is? Thank you for your help!
=IF(OR(AD2="22",AD2="23",AD2="39",AD2="540",AD2="541",AD2="836"),"1",IF(OR(AD2="335",AD2="312",AD2="364",AD2="367",AD2="311",AD2="336",AD2="365",AD2="319",AD2="368",AD2="488",AD2="498",AD2="461",AD2="501",AD2="505",AD2="531",AD2="462",AD2="489",AD2="491",AD2="491",AD2="493",AD2="507",AD2="457",AD2="460",AD2="499",AD2="503",AD2="509",AD2="513",AD2="539",AD2="612",AD2="613",AD2="568",AD2="821",AD2="827",AD2="829",AD2="835",AD2="845",AD2="846",AD2="615",AD2="620",AD2="614",AD2="691",AD2="719",AD2="873",AD2="877",AD2="32",AD2="427",AD2="373",AD2="465",AD2="502",AD2="511",AD2="466",AD2="475",AD2="481",AD2="500",AD2="504",AD2="462",AD2="489",AD2="491",AD2="493",AD2="507",AD2="503",AD2="513",AD2="539",AD2="607",AD2="610",AD2="608",AD2="609",AD2="611",AD2="579",AD2="769",AD2="795",AD2="827",AD2="831",AD2="834",AD2="837",AD2="838",AD2="839",AD2="840",AD2="841",AD2="842",AD2="843",AD2="851",AD2="852",AD2="853",AD2="854",AD2="856",AD2="857",AD2="860",AD2="861",AD2="868",AD2="869",AD2="870",AD2="871"),"2",IF(OR(AD2="521",AD2="524",AD2="535",AD2="536",AD2="557",AD2="558",AD2="805"),"3","4")))
It seems that the error probably has to do with the limits of version you are using.
Since the formula contains fixed equivalences, I suggest to create a Define Name range then Vlookup cell AD2 to the table in order to obtain the related value:
=IFERROR(VLOOKUP(AD2,_Table,2,0),"4")
This formula should work fine in Excel 2007 and later (I just tested it in 2010 with no issues). The maximum number of arguments allowed in a function in these versions is 255. For earlier versions of Excel though, the max is 30. Since you did not specify which version of Excel you are using, I cannot be 100% sure if this is the problem though but I suspect this is what is going on. I recommend you upgrade to a more current version of the software, but if that's not an option you could always break out the function among multiple cells (In particular, it's the 2nd nested if statement, with ~90 parameters that is causing this...).