=IMAGE("https://quickchart.io/qr?text="&ENCODEURL(A2))
I just found this one. Works fine.
Source: Alternative for charts.googleapis.com for generating QR code in google sheets
My world on the web
=IMAGE("https://quickchart.io/qr?text="&ENCODEURL(A2))
I just found this one. Works fine.
Source: Alternative for charts.googleapis.com for generating QR code in google sheets
@media only screen { .email * { word-break: break-word; } } @media screen and (max-width: 384px) { .mail-message-content { width: 414px !important; } } @media only screen { .ema…
This is where the magical FILTER function really shines. It will take the array inputs and give us array outputs, without needing an array formula designation.
Add in the βFILTER functionβ so that our formula in cell B2 looks like this:
=FILTER(A2:A,ISNA(XMATCH(A2:A,D2:D)))
And voilΓ !
Source: Comparing Two Columns by Ben Collins
—
I have never looked at XMATCH. Another one to explore.
In this newsletter, we’re looking at how to use hyperlinks in Google Sheets. And, if you’re an advanced user, I’ve got a spicy formula for you at the end of the newsletter.
Sheets Tip #312: The Missing Link π by Ben Collins
Ben, I really like the spicy solution regarding hyperlinks:
=HYPERLINK( "#gid=0&range=A" & ArrayFormula( MAX( IF( ISBLANK(A2:A), 0, ROW(A2:A))))+1 , "Add Data")
I had never thought about the fact that you can reference a cell and what possibilities that may allow.
It had me wondering about linking to a cell in a table via a drop-down menu /
using the MATCH function to add a link to a table row:=HYPERLINK("gid=0#gid=0&range=B" & MATCH(B$1, 'Sheet1'!B2:B, 0) + ROW('Sheet1'!B2) - 1, B1)
So if we wanted to get all the elements within our column wrapped into one row we would just need to change that third parameter to the maximum height of our columns. We could use the
ROWS()
function to capture this number:
Merge Two Columns Using QUERY: Google Sheets (Step By Step Example) by Ryan Sheehy
I have a
that I wanted to display in one column so that I could roll the results up into one cell to copy and paste elsewhere. I found this guide to combining columns and simply transposed the data to get the outcome I was after:=JOIN(CHAR(10),TRANSPOSE(QUERY(TRANSPOSE({"","","","","","";"Record(s) updated / merged:","","","","","";"","","","","","";SORT(Indirect(Table1));"","","","","","";"Record(s) retained:","","","","","";"","","","","",""; SORT(Indirect(Table2))}),,ROWS(TRANSPOSE({"","","","","","";"Record(s) updated / merged:","","","","","";"","","","","","";SORT(Indirect(Table1));"","","","","","";"Record(s) retained:","","","","","";"","","","","",""; SORT(Indirect(Table2))})))))
I searched online for any further explanation on the change, but was simply sent to Awesome Tables support page.
I started exploring other options online and short of paying for API connectors, I could not really find anything. I subsequently turned to
, wondering what it might give me. Surprisingly, it gave me a basic script for everything that I needed.function listFilesInFoldersGEN() {
var folders = [
{folderId: 'URL', sheetName: 'General'},
// Add more folders as needed
];
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
for (var i = 0; i < folders.length; i++) {
var folderId = folders[i].folderId;
var sheetName = folders[i].sheetName;
var folder = DriveApp.getFolderById(folderId);
var sheet = spreadsheet.getSheetByName(sheetName);
if (!sheet) {
sheet = spreadsheet.insertSheet(sheetName);
}
// Save the existing data
var range = sheet.getDataRange();
var values = range.getValues();
try {
sheet.clear();
sheet.appendRow(["Name", "Date", "Size", "URL", "Folder"]);
listFilesInFolderRecursiveGEN(folder, sheet, folder.getName());
} catch (e) {
// If an error occurs, revert to the saved data
range.setValues(values);
// Log the error
var errorMessage = 'Error: ' + e.toString();
Logger.log(errorMessage);
// Send an email
var emailAddresses = ['[email protected]', '[email protected]'];
// Enter your email address here
var subject = 'Error in Support Catalogue - General script';
var body = errorMessage;
MailApp.sendEmail(emailAddress, subject, body);
}
}
}
function listFilesInFolderRecursiveGEN(folder, sheet, path) {
var files = folder.getFiles();
while (files.hasNext()) {
var file = files.next();
sheet.appendRow([file.getName(), file.getDateCreated(), file.getSize(), file.getUrl(), path]);
}
var subfolders = folder.getFolders();
while (subfolders.hasNext()) {
var subfolder = subfolders.next();
listFilesInFolderRecursiveGEN(subfolder, sheet, path + '/' + subfolder.getName());
}
}
After a bit of back and forward, I had a new working catalogue which I provided to the team to provide feedback on.
=QUERY(A1:C7,"select * format B 'd-mmm-yy (ddd)'")
These are the available values:
I know Ben Collins has spoken about
, but I never knew there were all these options.You need to create an xml file with a script from google spreadsheets. I use the code from these two topics:
=char(34)&join(""",""",ARRAYFORMULA(QUERY(A1:A,"SELECT A WHERE A IS NOT NULL")&""","""&QUERY(B1:B,"SELECT B WHERE B IS NOT NULL")))&char(34)
At the heart of today’s tip is the fantasticΒ SEQUENCE function.
In a blank Google Sheet, enter this formula into cell A2:
=SEQUENCE(53,7,DATE(2022,1,1),1)
It outputs a year of dates across 7 columns!
Add the days of the week as a header row and you’re set.
=SEQUENCE(53,7,DATE(2022,1,1),1)
=ArrayFormula(SEQUENCE(MAX(ROW(B2:B)*(B2:B<>""))-1))
This post explores how to connect to the Teachable API using Apps Script. You can use this setup to return data about your online courses and show it in Google Sheets.
Suppose you’re a school teacher and you’re planning an upcoming Parent-Teacher conference. Instead of using a printed sign up sheet, you decide to use a Google Sheets spreadsheet where parents can sign up for a meeting slot.
In the past you’ve had parents forget which slot they signed up for so you’re hoping that a shared Google Sheet that they can access at any time will help solve this problem. You also want to receive an email notification whenever a parent signs up for a slot. This will help you keep track of who hasn’t signed up yet so you can remind them when they drop off or pick up their kids.
In this tutorial, I’ll show you how to send email notifications whenever a Google Sheets spreadsheet is edited. We’ll use Google Sheets and some Google Apps Script code to create this “application”.
"[email protected]" + "," + "[email protected]";
The next step is to think about how this information can be made clearer, possibly listing the specific changes, rather than just highlighting the particular school updated.
How to style from formula in cell?
The first using SUBSTITUTE of one font to another:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(E3,"A","π"),"B","π"),"C","π"),"D","π"),"E","π"),"F","π
"),"G","π"),"H","π"),"I","π"),"J","π"),"K","π"),"L","π"),"M","π"),"N","π"),"O","π"),"P","π"),"Q","π"),"R","π"),"S","π"),"T","π"),"U","π"),"V","π"),"W","π"),"X","π"),"Y","π"),"Z","π"),"0","π"),"1","π"),"2","π"),"3","π"),"4","π"),"5","π"),"6","π"),"7","π"),"8","π"),"9","π")
The second solution combines REGEX and UNICODE:
=ARRAYFORMULA(JOIN("", UNICHAR(QUERY(UNICODE(SPLIT(TRANSPOSE(SPLIT(
REGEXREPLACE(
REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(A2&""
,"([^a-zA-Z0-9])","$1"&UNICHAR(160)&UNICHAR(1)&CHAR(127))
,"'","''")
,"([a-z])","$1"&UNICHAR(160)&UNICHAR(119738)&CHAR(127))
,"([A-Z])","$1"&UNICHAR(160)&UNICHAR(119744)&CHAR(127))
,"([0-9])","$1"&UNICHAR(160)&UNICHAR(120735)&CHAR(127))
,"'","''")
,CHAR(127))), UNICHAR(160))), "select Col1+Col2-1 label Col1+Col2-1 ''",0))))
I prefer the second solution. However, the first is easier to apply to a whole column using the ARRAYFORMULA.