I want to manage my expenses using a google spreadsheet. The problem is that I use dollars and euros. I write the numbers like $23 and €25. The sum function works properly for the euro symbol, but it returns zero for the $ sign.
I set up a small example here:
https://docs.google.com/spreadsheets/d/1_mg6xxsae2ybDHXQAqGLddXmJMDsYaaGkkhRY2YIIQc/edit#gid=0
Both columns has the same sum function, but only one works. Why?
Thanks in advance.
---EDIT:
I updated the example with some data of the real world. And I changed the timezone of the spreadsheet to the one that corresponds to me (spain). I highlighted two examples in the sheet2. As you can see, the examples are using the correct currency format, but the sum stills zero. The same configuration in the sheet1 works nicely.
I'm starting to think the problem is the timezone of the spreadsheet.
https://docs.google.com/spreadsheets/d/1Hi8DDafrej7544mVEj1e4iEI-j6n6Vu2LttYaDYurOg/edit?usp=sharing
The same addition works for the sheet above.
I formatted column A it as Currency $ and Column C as Currency British Pound (There is an option when you click at Format to add more currency and there you can pick Pounds). Looks like the addition works in this case.
$ is a character used in formulas to anchor row or column references. Try writing the number without symbols at all, and instead set the format accordingly instead.
http://www.gcflearnfree.org/googlespreadsheets/14.3
Related
I have a product with In-App Purchases in several markets in which transactions happen in their local currency. Created a Google Sheet for the purpose of reporting revenues in our base currency (USD). I tried several things to create the most effective method to automatically read the currency pair for each transaction, but the formula isn't working.
I am attempting to accomplish 3 things here:
Create an array that will automatically convert different currencies to USD by using the GOOGLEFINANCE formula (see "G1" on the embedded spreadsheet).
Eliminating error when conversion finds a value having the same ISO codes (see "F12" on the embedded spreadsheet).
Calculating the transaction using the exchange rate of the day of the transaction instead of TODAY's exchange rate (no clue on how to do this without breaking the GOOGLEFINANCE formula).
Here is the formula I am using on Col "G" is:
={"CONVERSION ARRAY";ARRAYFORMULA(E2:E*GOOGLEFINANCE("CURRENCY:"&D2:D))}
The problem with this approach is that it replicates the value of cell "D2" down the whole array, instead of consecutive values from D2,3,4, etc, accordingly. Removing the "&" from the array breaks the formula.
While the formula used on Col "F" =E2*GOOGLEFINANCE("CURRENCY:"&D2) works, the problem here is that it has to be placed manually, row by row, and this is inefficient when dealing with thousands of records. Also, you will notice on cel F12, I get an invalid value because GoogleFinance cannot convert from dollars to dollars. The formula outputs an error. Is there a way to make the formula understand that when trying to convert a value with the same currency ISO's, the value stays the same?
Even while I get the correct calculation on approach #2, the data calculated is based on TODAY's exchange rate, however, I need that calculation based on the exchange rate of the same date of the transaction. Is this even possible?
The referred spreadsheet example is here: Google Finances Conversion Formula
GOOGLEFINANCE is not supported under ARRAYFORMULA
if your D2:D range is small you can do:
={"CONVERSION ARRAY";ARRAYFORMULA(E2:E5*{
GOOGLEFINANCE("CURRENCY:"&D2);
GOOGLEFINANCE("CURRENCY:"&D3);
GOOGLEFINANCE("CURRENCY:"&D4);
GOOGLEFINANCE("CURRENCY:"&D5)})}
Beginner here who just started building a spreadsheet to track different stocks.
I can't seem to get conditional formatting to work on certain columns.
Here's an example: https://docs.google.com/spreadsheets/d/1chW8URH3S4P_AGOfPr7oKmeqWApUWVBTwCgu0XtmuyA/edit#gid=0
Column C works fine, column B doesn't.
How can I get it to work?
Thanks in advance!
It isn't working because the values in column B aren't numbers - although they look like numbers, they are actually text. You could try converting them to numbers like this - you need the Iferror because the hyphens will produce an error when it tries to convert them.
=IF(ISBLANK(A2),,iferror(--SUBSTITUTE(INDEX(QUERY(IMPORTHTML("https://www.finviz.com/quote.ashx?t="&A2, "table", 8),"select Col4"),6),"*",""),"-"))
The crossJoin function posted by #Max Makhrov from the below thread works almost completely for what I was hoping to achieve. It was in response to cross joining two columns and I tried joining two tables, one with two columns and one with five columns. It works but only partially.
The delimiter of the column data is stuck as comma ",". This could be problematic for values with commas. The delimiter variable in the function only defines the two ranges being joined.
If the column being joined is a date for example, it seems to extend out the full date text inclusive of time zone and fixed as text. Is there a way to allow for it to be non-text to be formatted? Even when it's parsed using the split() function it's definitely still text.
Result of JOIN is longer than the limit of 50,000 characters
Below is a link to the example input and output. The first output example is a standard cross join. The other is the actual desired output which filters for any data rows where the date in column 5 is greater than or equal to the date in column 2.
https://docs.google.com/spreadsheets/d/1FGS8lYyy60AH49Qyug8Uxaey5jxDksihOks7ll8Hq10/edit?usp=drivesdk
Your spreadsheet is View Only, so i can't demo it there, but try this. On the demo sheet, start a new tab, then put this formula in cell A2.
Happy to walk you through it a bit if it works. Otherwise, maybe make the sample editable so i can troubleshoot w/ you in the same place?
=ARRAYFORMULA(QUERY({HLOOKUP({"A","B"},{"A","B";Sheet1!A5:B},SEQUENCE(COUNTA(Sheet1!D5:D)*COUNTA(Sheet1!A5:A),1,0)/COUNTA(Sheet1!D5:D)+2),HLOOKUP({"D","E","F","G"},{"D","E","F","G";Sheet1!D5:G},MOD(SEQUENCE(COUNTA(Sheet1!D5:D)*COUNTA(Sheet1!A5:A),1,0),COUNTA(Sheet1!D5:D))+2)},"where Col2>=Col5"))
I want to obtain in a Google Sheets cell, the value of a cryptocoin at certain date.
So I have, for example, the following url which shows the prices (open, high, low, close) of the Waves criptocurrency at 15th of December:
Link
So with
=INDEX(IMPORTHTML("https://coinmarketcap.com/currencies/Waves/historical-data/?start=20171215&end=20171215";"table";1);2;2)
I am getting the Openning Price from that url. In this case: 13.55
But I don't know why when the resulting value starts by 0 point, it skips that part (the 0 point) . With the following formula:
=INDEX(IMPORTHTML("https://coinmarketcap.com/currencies/Ripple/historical-data/?start=20171215&end=20171215";"table";1);2;2)
I am getting 861760 whereas the Opening Price in the url is: 0.861760
I don't know if it has to do with me being from Spain and here we use 0, (zero comma) and no 0. (0 point) and I must configure something to use the 0. notation or what...
Try adjusting your number formats from Automatic to a custom format like '0.00000. If that doesn't work this might...
=IF(INDEX(IMPORTHTML("https://coinmarketcap.com/currencies/Ripple/historical-data/?start=20171215&end=20171215","table",1),2,2)>1,CONCATENATE("0.",INDEX(IMPORTHTML("https://coinmarketcap.com/currencies/Ripple/historical-data/?start=20171215&end=20171215","table",1),2,2)),INDEX(IMPORTHTML("https://coinmarketcap.com/currencies/Ripple/historical-data/?start=20171215&end=20171215","table",1),2,2))
You might need to switch the ">" for "<"
Or perhaps...
=INDEX(IMPORTHTML("https://coinmarketcap.com/currencies/Ripple/historical-data/?start=20171215&end=20171215","table",1),2,2)*CONCATENATE("0.", REPT(0,len(INDEX(IMPORTHTML("https://coinmarketcap.com/currencies/Ripple/historical-data/?start=20171215&end=20171215","table",1),2,2))-1),1)
The problem is that importhtml already parses the data using the spreadsheet's locale, so there is nothing you can do to restore correct data if it was parsed incorrectly. Information is already corrupted.
What you can do:
Change the locale in Spreadsheet Settings to some country which uses dot as decimal separator (see the list here). It's probably best to use the country from where the data comes from.
But you probably prefer to work in your familiar locale. In that case, create a new spreadsheet just with importhtml that you need, setting its locale as in #1. In your main spreadsheet, use importrange to import the data from the new spreadsheet. The data now arrives unharmed, because importhtml interpreted it correctly, and importrange knows what to do to move data between spreadsheets, even between different locales.
My responses are timestamped as soon as anyone submits a survey. I wanted to count those timestamp monthwise.
URL - https://docs.google.com/spreadsheet/ccc?key=0AkpZp6MVqYv1dE5SZjJIODB1WF9nZDR6b1ZJZjFPenc&usp=sharing
I wanted to find out number of positive responses for a particular question (lets say Q1) for a particular month (lets say May)
Column G is not founded out based on the timestamp of Q1, I had asked the user the month, but that's not the correct way to do so, so I have stopped asking the user to enter the month.
First you have to overcome the fact that the timestamp isn't compatible with googles date format. No biggie,... luckily it looks like you have a fixed format ie DD/MM/YYYY. So you can use the LEFT and RIGHT formulas like so =right(left(a2,5),2) This will give you the month in text, ie 05.
Great.
Now for the harder stuff. If you have the newer google spreadsheets, you can simply use countifs to the effect of:
=countifs(arrayformula(right(left(A$2:A,5),2)),"=05",B$2:B,"=Positive")
For each month, replace the "=05" with the the date number you want. You could also make a month lookup chart for all months and questions so that you don't have to modify the formula for each month and quesiton. For this you replace the "=05" with =[cell number containing month number as text] (NOTE: for making a lookup key, you will have to pay close attention to the fact that you are getting TEXT in the formula above vice a number. There is a difference and they are not compatible as-is.)
Let's say you don't have the new google spreadsheets. Then you can use the old sumproduct() and if(). Yes, it is old. See the following:
=sumproduct(arrayformula(if(right(left(A$2:A,5),2)="05",1,0)),arrayformula(if(B$2:B="Positive",1,0)))
Note in both of these, you need to use arrayformula to convert the column with the timestamp into something useable. If you want to make this part easier by removing the parseing functions (LEFT() and RIGHT()) you need to change the timestamp format to be MM/DD/YYYY. Then you can plug in the the MONTH(DATE) formula and it will be done.
Then make a master sheet like so (note my formula has a "'" in it to make it visible for purposes of demonstration, you should remove it.):
Careful inspection might note that the count is wrong. That is because when I imported your timestamps, times like "02/06/2014 ..." were interpreted to mean "February 06" because of google's auto-formatting. In your sheet you will get the correct count using this formula, because of the way your timestamp is auto-populated.
HINT: To make the month a text you need to enter ="05" in the Month column
Please let me know how you make out.