Report datas from Docs to Sheets - google-sheets

I am writing to you because I am looking for information and I can't find anything on the subject.
I would like to transfer the information in a google Docs directly into a google Sheets. I know that the reverse is possible but I do not know if it is possible in this sense.
If you have any information on the subject, I am interested.
Thanks in advance for your answers (sorry for my english, i'm french and i don't speak very good this language).

Sample Solution:
This is just a basic sample solution of passing a paragraph/sentence to a variable and setting its value to a specified cell on Google Sheets.
function myFunction() {
var body = DocumentApp.getActiveDocument().getBody();
var text = body.findText('Lorem');
var el1 = text.getElement();
var settxt = el1.asText().getText();
var ss = SpreadsheetApp.openById('SHEETID');
var sheet = ss.getSheetByName('Sheet1');
sheet.getRange('A1').setValue(settxt);
Logger.log(settxt);
}
There are various ways on how we can achieve this which heavily depends on the formatting of the data on Google Docs. So I'd recommend reading through these documentations on both Google Docs and Google Sheets using Google Apps Script to be familiarized with various functions/methods you can use to manipulate certain formatting within both services.
References:
https://developers.google.com/apps-script/reference/document/document-app
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app
Output:
Gets the sentence or paragraph that starts with Lorem, and paste it into Cell A1

Related

Convert Written Math Expression to a simple Google Sheets Formula

I've been trying to write this type of equation into google sheets manually, but as i progress i will be facing longer and more complex ones.
Here's an example :
This Becomes : X=(5^(1/3)Y^(1/3))/2^(2/3)
This is just another way of writing it.
Now, my question is, Is there a way to convert this automatically ?
Here's an example of more complex translations i have to do :

Google Sheets - [Resource at URL not found]

Recently having issue with google sheets getting info from yahoo finance.
=if(isblank(B4),"",ImportXML("https://finance.yahoo.com/quote/"&B4&"/history?p="&B4, "//tbody/tr[1]/td[6]"))
*Cell B4 is ticker, example : [7113.KL]
Anyone encounter this?
Any solution for this?
Seems like IMPORT functions doesn't work on the link you provided. It might be that the data is javascript generated and it is a current limitation of IMPORT functions.
Easiest way to circumvent this is to find another site that its data isn't javascript generated. Such as this one.
Formula:
=INDEX(IMPORTXML("https://www.investingport.com/quotes/7113.KL/", "//div[#class='col-md-6']/span"),1,1)
Since your B4 contains 7113.KL and you check the B4 first
, then adjusted formula is:
=if(isblank(B4),"", INDEX(IMPORTXML("https://www.investingport.com/quotes/"&B4&"/", "//div[#class='col-md-6']/span"),1,1))
Sample output:
Alternative:
Another way is to do it via Apps Script using UrlFetchApp

Parsing Error trying to import Coinbase Pro API into Google Sheets

New to APIs in Google sheets, but I feel like I'm 95% of the way to where I'm trying to go.
I'm trying to pull crypto data into my spreadsheet to do a simple 24 hour price comparison and gauge whether the price has gone up or down, maybe use some conditional code to change the background to green or red. Simple enough. Most of the sites that offer APIs have given me various errors, though, so coinbase pro (and weirdly the deprecated gdax) have been most reliable (although I haven't ruled out that it started breaking because I'm now putting in too many call requests).
Found this as a way to get the current price of ETH, for instance:
=VALUE(SUBSTITUTE(SUBSTITUTE(INDEX(IMPORTDATA("https://api.gdax.com/products/ETH-USD/ticker"),0,2), "price:",""), """", ""))
Works like a charm. So I changed the request to target different info, specifically the 24hr stats listed on the API doc, and the first value in that section, "open" for opening price (this ensures I get the price exactly 24hrs earlier). But I got a weird parsing error using the request, which is here:
=VALUE(SUBSTITUTE(SUBSTITUTE(INDEX(IMPORTDATA("https://api.pro.coinbase.com/products/ETH-USD/stats"),0,1), "open:",""), """", ""))
I've figured out the issue, but not the solution. Google Sheets says I am pulling in text. Because the "open" (opening price) value is the first listed in the JSON code, it is pulling in the code bracket from the nested HTML/JSON code. For instance, it says I can't parse "{open" into a number. And I get the same problem in reverse when I pull the last value listed in the stats section, which is "volume_30day:"
=VALUE(SUBSTITUTE(SUBSTITUTE(INDEX(IMPORTDATA("https://api.pro.coinbase.com/products/ETH-USD/stats"),0,6), "volume_30day:",""), """", ""))
This returns an error saying "volume_30day: #}" can't be parsed, so now it is the closing bracket of the JSON code. So I can't use "open" the first item in the API 24hr stats section, or Volume_30day, which is the sixth item on that list, but items 2-5 work just fine. Seems super weird to me, but I've tested it and it is seems to be what's going on.
There must be something stupid I need to tweak here, but I don't know what it is.
Answer 1:
About =VALUE(SUBSTITUTE(SUBSTITUTE(INDEX(IMPORTDATA("https://api.pro.coinbase.com/products/ETH-USD/stats"),0,1), "open:",""), """", ""))
When I checked =SUBSTITUTE(SUBSTITUTE(INDEX(IMPORTDATA("https://api.pro.coinbase.com/products/ETH-USD/stats"),0,1), "open:",""), """", ""), the value is {open:617. I think that when by this, when VALUE is used for the value, the error occurs.
In order to retrieve the values you expect, I would like to propose to use REGEXREPLACE instead of SUBSTITUTE. The modified formula is as follows.
=VALUE(REGEXREPLACE(INDEX(IMPORTDATA("https://api.pro.coinbase.com/products/ETH-USD/stats"),0,1), "open|""|{|}|:",""))
In this modified formula, open|""|{|}|: is used as the regex. These are replaced with "".
In this case, I think that =VALUE(REGEXEXTRACT(INDEX(IMPORTDATA("https://api.pro.coinbase.com/products/ETH-USD/stats"),0,1), "\d+")) can be also used. But when I thought about your 2nd question, I thought that above formula might be useful.
Result:
Answer 2:
About =VALUE(SUBSTITUTE(SUBSTITUTE(INDEX(IMPORTDATA("https://api.pro.coinbase.com/products/ETH-USD/stats"),0,6), "volume_30day:",""), """", ""))
When I checked =SUBSTITUTE(SUBSTITUTE(INDEX(IMPORTDATA("https://api.pro.coinbase.com/products/ETH-USD/stats"),0,6), "volume_30day:",""), """", ""), the value is 7101445.64098932}. I think that when by this, when VALUE is used for the value, the error occurs.
In order to retrieve the values you expect, I would like to propose to use REGEXREPLACE instead of SUBSTITUTE. The modified formula is as follows.
=VALUE(REGEXREPLACE(INDEX(IMPORTDATA("https://api.pro.coinbase.com/products/ETH-USD/stats"),0,6), "volume_30day|""|{|}|:",""))
In this modified formula, volume_30day|""|{|}|: is used as the regex. These are replaced with "".
In this regex, it can use by replacing open of open|""|{|}|: to volume_30day at above regex.
Result:
Other pattern 1:
As other pattern using the built-in formula, how about the following modified formulas?
=VALUE(TEXTJOIN("",TRUE,ARRAYFORMULA(IFERROR(VALUE(REGEXREPLACE(IMPORTDATA("https://api.pro.coinbase.com/products/ETH-USD/stats"), "open|""|{|}|:","")),""))))
=VALUE(TEXTJOIN("",TRUE,ARRAYFORMULA(IFERROR(VALUE(REGEXREPLACE(IMPORTDATA("https://api.pro.coinbase.com/products/ETH-USD/stats"), "volume_30day|""|{|}|:","")),""))))
In these formulas, the values can be retrieved by replacing KEY of KEY|""|{|}|: of the regex.
Other pattern 2:
The returned value from https://api.pro.coinbase.com/products/ETH-USD/stats is the JSON value. So in this case, when the custom function created by Google Apps Script can be also used.
The Google Apps Script is as follows.
const SAMPLE = (url, key) => JSON.parse(UrlFetchApp.fetch(url).getContentText())[key] || "no value";
When you use this script, please copy and paste the above script to the script editor of Spreadsheet and save it. And please put the custom function like =SAMPLE("https://api.pro.coinbase.com/products/ETH-USD/stats","open") and =SAMPLE("https://api.gdax.com/products/ETH-USD/ticker","price") to a cell. By this, the value can be retrieved.
References:
REGEXREPLACE
Custom Functions in Google Sheets

Google spreadsheets - how to handle duration: store and use in calculations?

I've got a lot of "duration" values - basically a race duration - in a format m:ss.millis [4:03.810 for example].
Currently GS handles it as text, but I would like to use those values for comparison and create some statistics.
Is this possible? I have read this: How to format a duration as HH:mm in the new Google sheets but even though I have created a custom formats like:
or
but neither with one nor with another I cannot use those values for calculations. GS always complains about the values beeing stored as text.
I guess I'm just doing something wrong, but I definitely need to be able to provide values in this format and be able to use them in calculations.
How can I do that?
I regret that Duration seems to be a useless abomination and Sheets appears to offer no relatively easy way to convert text representation to values. Pending a better answer I suggest you convert all your durations as below:
=(left(A1,find(":",A1)-1)+right(A1,6)/60)/1440
format as Number:
mm:ss.000
and then apply your formulae.
(Change , to ; if required by your locale.)
A shorter formula might be used to cajole TIMEVALUE to work by including an hour value of 0:
=TIMEVALUE("00:"&A1)
A happy coincidence brought me back here because only very recently have I found that Google Sheets does offer a way to convert Text to Number (or I was having another aberration when I claimed otherwise). However, this still seems not to apply to Duration. Maybe there is yet hope though.

Parsing name and address from unstructured text

I am working on an application that requires me to parse unstructured
text. I need to parse name, address - area,city,country and zip code
from it. The addresses will be Indian.
Sample input:
"I am ABC working in XYZ company.
I am good at web designing having an experience of 3 years.
I live in kothrud,Pune-411038,Maharashtra."
Output:
NAME : ABC
AREA : KOTHRUD
CITY : PUNE
STATE : MAHARASHTRA
ZIP CODE : 411038
I am planning to use Apache ConceptMapper for parsing cities and states
for which I will have to build a dictionary set myself, but I guess that
can be done. For the zip code, I can use regex. I am stuck at how to
parse a name and area. Regex can be used to get name and area with
little hacking and lots of patterns but I am wondering if there is any
better solution available.
Is there any database I can query to, that would return addresses? I
haven't looked into Google maps/places but can you achieve address
parsing with them easily?
Any inputs would be highly appreciated.
Thanks.
The Google Geocoding API can help with this. It will return the map coordinates for a given address or an appropriate status code if no match is found.

Resources