I am using Google Sheets to look up a formula, but the code comes back saying
"unable to match'.25oz'"
The link for the sheet is here:
https://docs.google.com/spreadsheets/d/1K1Hb9xV8Ky51Vdiv0SG-zKOEH0ELPNBYwMWhDFfm4l0/edit#gid=168328825
The specific part I am having an error with is 'Master Cocktail' D5 where it tries to search either my Spirits sheet or the 'Beer NA Bev' sheet. for the appropriate price based on the oz used.
The code I am using in the cell is:
=ArrayFormula(IF(C5="","",vlookup($B5,{'Beer NA Bev'!$A$63:$H$71;Spirits!$A$2:$I$325},MATCH($C5,{'Beer NA Bev'!$A$62:$K$62;Spirits!$A$3:$J$3},0),FALSE)))
first of all {'Beer NA Bev'!$A$63:$H$71; Spirits!$A$2:$I$325} needs to be: {'Beer NA Bev'!$A$63:$I$71; Spirits!$A$2:$I$325} eg. same amount of columns
then you can drop the whole MATCH and put there IFERROR under which there will be IF with two VLOOKUP (one for TRUE side and one for FALSE side) to distinguish between beer and spirits because you have .25oz in both sheets. and then you can insert simple IFS to check/search for the right .25oz price and return column number for the main VLOOKUP. check this similar issue: https://stackoverflow.com/a/54680420/5632629
something like this:
IFERROR(IF(VLOOKUP(B5, 'Beer NA Bev'!$A$63:$I$71, 1, 0)<>"", IFS(C5=".25oz", 5,
C5=".5oz", 6,
C5=".75oz", 7,
C5="1oz", 8,
C5="2oz", 9), ),
IF(VLOOKUP(B5, Spirits!$A$2:$I$325, 1, 0)<>"", IFS(C5="2oz", 4,
C5="1.5oz", 5,
C5="1oz", 6,
C5=".75oz", 7,
C5=".5oz", 8,
C5=".25oz", 9), ))
and the whole formula would be:
=ARRAYFORMULA(IF(C5="", "",
VLOOKUP($B5, {'Beer NA Bev'!$A$63:$I$71;
Spirits!$A$2:$I$325},
IFERROR(IF(VLOOKUP(B5, 'Beer NA Bev'!$A$63:$I$71, 1, 0)<>"", IFS(C5=".25oz", 5,
C5=".5oz", 6,
C5=".75oz", 7,
C5="1oz", 8,
C5="2oz", 9), ),
IF(VLOOKUP(B5, Spirits!$A$2:$I$325, 1, 0)<>"", IFS(C5="2oz", 4,
C5="1.5oz", 5,
C5="1oz", 6,
C5=".75oz", 7,
C5=".5oz", 8,
C5=".25oz", 9), )), 0)))
Related
I've got a spreadsheet tracking my partner and I's wordle scores, tracking an average.
Win Turns, Me, Them
1, 0, 0
2, 1, 2
3, 4, 9
4, 12, 8
5, 5, 9
6, 2, 6
And the formula to calculate the average looks like this:
=((C2*A2)+(C3*A3)+(C4*A4)+(C5*A5)+(C6*A6)+(C7*A7))/sum(C2:C7)
I'm using Google sheets. Is there a better way to write this??
if you want something short you can use
=INDEX(SUM(C2:C*A2:A)/SUM(C2:C))
or:
=AVERAGE.WEIGHTED(A2:A, C2:C)
Hey I have an issue with trying to do a reverse order lookup or a bottom up vlookup
My formula is
=ARRAYFORMULA(IFERROR(VLOOKUP(A3:A,{'movement co'!C:R;bfitt!C:R;gladstone!C:R;parkhurst!C:R;mayfield!C:R;alexandria!C:R;'crows nest'!C:R;newtown!C:R;'gregory hills'!C:R;annandale!C:R;graceville!C:R;'south penrith'!C:R;'north melbourne'!C:R;'back on track'!C:R;'elsternwick'!C:R;'brighton'!C:R},{16,2,3,4,15,10,5},0)))
This looks over multiple tabs/sheets to gather the data which works fine, but I need it to look at the last added row which I can't seem to make work with a sort function.
Any ideas?
try:
=ARRAYFORMULA(IFERROR(VLOOKUP(A3:A, SORT(
{'movement co'!C:R, ROW('movement co'!C:R);
bfitt!C:R, ROW(bfitt!C:R);
gladstone!C:R, ROW(gladstone!C:R);
parkhurst!C:R, ROW(parkhurst!C:R);
mayfield!C:R, ROW(mayfield!C:R);
alexandria!C:R, ROW(alexandria!C:R);
'crows nest'!C:R, ROW('crows nest'!C:R);
newtown!C:R, ROW(newtown!C:R);
'gregory hills'!C:R, ROW('gregory hills'!C:R);
annandale!C:R, ROW(annandale!C:R);
graceville!C:R, ROW(graceville!C:R);
'south penrith'!C:R, ROW('south penrith'!C:R);
'north melbourne'!C:R, ROW('north melbourne'!C:R);
'back on track'!C:R, ROW('back on track'!C:R);
'elsternwick'!C:R, ROW('elsternwick'!C:R);
'brighton'!C:R, ROW('brighton'!C:R)}, 17, 0),
{16, 2, 3, 4, 15, 10, 5}, 0)))
I need to pull each AppId's lowest and highest appVersion;
https://docs.google.com/spreadsheets/d/16kAWT6Ld9LC9IOWt0dTEfsINofgP73BzN-pjDq_9VnM/edit?usp=sharing
Thanks for helping!
enter image description here
This formula should give you a list with all the unique apps and their lowest version.
=Arrayformula(iferror({unique(A2:A), vlookup(unique(A2:A), sort({A2:B, substitute(B2:B, ".",)}, 3, 1), 2, 0)}))
See if that works for you ?
In case you don't want the appId to show, you can try
=Arrayformula(iferror(vlookup(unique(A2:A), sort({A2:B, substitute(B2:B, ".",)}, 3, 1), 2, 0)))
UPDATE: based on new info on the comments, try this formula to list the minimum and the maximum appversion per appId.
=Arrayformula(iferror({unique(A2:A), {vlookup(unique(A2:A), sort({A2:B, substitute(B2:B, ".",)}, 3, 1), 2, 0), vlookup(unique(A2:A), sort({A2:B, substitute(B2:B, ".",)}, 3, 0), 2, 0)}}))
I have a dashboard that I enter link description here am trying to lookup clients based off of billings per month. the formula required two criteria looking up the Client and the Type of account they have. Some clients have multiple accounts so hence the reason the two criteria lookup is necessary. I can get the formula to work without referencing the month with this line:
=ARRAYFORMULA(iferror(vlookup($A8&$B8, {'Run Rate'!$B$2:$B&'Run Rate'!$C$2:$C,'Run Rate'!$D$2:$I}, 6, 0),""))
But when I try to add referencing the month tab it will not work:
=IF($A$2 = "January 2019",ARRAYFORMULA(iferror(vlookup($A6&$B6, {'Run Rate01'!$B$2:$B&'Run Rate01'!$C$2:$C,'Run Rate01'!$D$2:$I}, 6, 0),
IF($A$2 = "February 2019",ARRAYFORMULA(iferror(vlookup($A6&$B6, {'Run Rate02'!$B$2:$B&'Run Rate02'!$C$2:$C,'Run Rate02'!$D$2:$I}, 6, 0),
IF($A$2 = "March 2019",ARRAYFORMULA(iferror(vlookup($A6&$B6, {'Run Rate03'!$B$2:$B&'Run Rate03'!$C$2:$C,'Run Rate03'!$D$2:$I}, 6, 0),"")))))))))
Here is the sample Dashboard
If you have another way of doing this I would love some advice as well. Any assistance will help.
paste in C6, drag over D6 and then drag down:
=ARRAYFORMULA(IFERROR(VLOOKUP($A6&$B6,
QUERY({'Run Rate02'!$B$2:$B&'Run Rate02'!$C$2:$C, 'Run Rate02'!$D$2:$I},
"where Col4>=date'"&
TEXT(DATE(RIGHT($A$2, 4), MONTH(SPLIT($A$2, " ")&1), 1), "yyyy-mm-dd")&"'
and Col4< date'"&
TEXT(DATE(RIGHT($A$2, 4), MONTH(SPLIT($A$2, " ")&1)+1, 1), "yyyy-mm-dd")&"'"),
COLUMN()+3, 0)))
I got the results I needed with this formula:
=ArrayFormula(IFERROR(IF($A$2 = "January 2019",vlookup($A6&$B6, {'Run Rate01'!$B$2:$B&'Run Rate01'!$C$2:$C,'Run Rate01'!$D$2:$I}, 6, 0), IF($A$2 = "February 2019",vlookup($A6&$B6, {'Run Rate02'!$B$2:$B&'Run Rate02'!$C$2:$C,'Run Rate02'!$D$2:$I}, 6, 0), IF($A$2 = "March 2019",vlookup($A6&$B6, {'Run Rate03'!$B$2:$B&'Run Rate03'!$C$2:$C,'Run Rate03'!$D$2:$I}, 6, 0),"")))))
BigQuery with Legacy SQL has a pretty convenient QUANTILES function to quickly get a histogram of values in a table without specifying the buckets by hand.
I can't find a nice equivalent in aggregation functions available in Standard SQL. Did I miss something obvious, or otherwise, what's the standard way of emulating it?
You're looking for the APPROX_QUANTILES function :) One of the examples from the docs is:
#standardSQL
SELECT APPROX_QUANTILES(x, 2) AS approx_quantiles
FROM UNNEST([NULL, NULL, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10]) AS x;
+------------------+
| approx_quantiles |
+------------------+
| [1, 5, 10] |
+------------------+
Note that it returns an array, but if you want the elements of the array as individual rows, you can unnest the result:
#standardSQL
SELECT
quant, offset
FROM UNNEST((
SELECT APPROX_QUANTILES(x, 2) AS quants
FROM UNNEST([NULL, NULL, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10]) AS x
)) AS quant WITH OFFSET
ORDER BY offset;