Skip to content

Instantly share code, notes, and snippets.

View Max-Makhrov's full-sized avatar
🇺🇦

Max Makhrov Max-Makhrov

🇺🇦
View GitHub Profile
function onEdit(event)
{
// Change Settings:
//--------------------------------------------------------------------------------------
var TargetSheet = 'Main'; // name of sheet with data validation
var LogSheet = 'Data1'; // name of sheet with data
var NumOfLevels = 4; // number of levels of data validation
var lcol = 2; // number of column where validation starts; A = 1, B = 2, etc.
var lrow = 2; // number of row where validation starts
@Max-Makhrov
Max-Makhrov / Copy-multiple-Sheets-Google-Speadsheets.gs
Created March 30, 2018 11:35
The code helds to copy sheets between files in 1 click
/* Done!
1. Copy multiple sheets between files with 1 click
2. Delete "copy of..." from sheet name. Leave original name if possible*.
3. Delete and recreate named ranges. Leave original name if possible.
4. Repair formulas → to prevent #N/A, #Ref errors
* no naming conflicts
*/
function test_Error()
{
var file = SpreadsheetApp.getActive();
var sheet = file.getSheetByName('No Such Sheet!');
var range = sheet.getRange(1, 1);
var value = range.getValue();
Logger.log(value);
={"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ; ArrayFormula(VLOOKUP((ROW(INDIRECT("a1:a83"))-1)*7+TRANSPOSE(ROW(INDIRECT("a1:a7"))),{ROW(INDIRECT("a1:a588")),IF(TRANSPOSE(SPLIT(JOIN("",rept("0,",WEEKDAY(EOMONTH(A1,row(INDIRECT("a1:a12"))-2)+1))&REPT("1,",DAY(EOMONTH(A1,row(INDIRECT("a1:a12"))-1)))&rept("0,",49-DAY(EOMONTH(A1,row(INDIRECT("a1:a12"))-1))-WEEKDAY(EOMONTH(A1,row(INDIRECT("a1:a12"))-2)+1))),",")),MOD(ROW(INDIRECT("a1:a588"))-1,49)+1-VLOOKUP(CEILING(ROW(INDIRECT("a1:a588"))/49),{ROW(INDIRECT("a1:a12")),WEEKDAY(EOMONTH(A1,row(INDIRECT("a1:a12"))-2)+1)},2,),TRANSPOSE(SPLIT(rept(rept(" ,",42) & "Sun,Mon,Tue,Wed,Thu,Fri,Sat,",12), ",")))},2,)) }
/*
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/
/*
_____ _ _ _ __
| __ \ | | | | | | \ \
| |__) |_ _ ___| |_ ___ | |__| | ___ _ __ ___ \ \
| ___/ _` / __| __/ _ \ | __ |/ _ \ '__/ _ \ \ \
// please refer here for more info:
// https://sheetswithmaxmakhrov.wordpress.com/2018/01/03/smart-data-validation-create-dependent-drop-down-lists-in-goole-sheets/
function onEdit(event)
{
var maxRows = false;
// Change Settings:
//--------------------------------------------------------------------------------------
var TargetSheet = 'Main'; // name of sheet with data validation
var C_RANGE_EVAL = 'eval';
// Declare
var STR_DELIMEER1 // delim1
var STR_DELIMEER2 // delim2
var STR_IDS // files ids
var STR_SHEETS // sheet names
=ADDRESS(1,1,4,,"Sheet1")&":"&ADDRESS(COUNTA(Sheet1!A:A),COUNTA(Sheet1!1:1),4)
@Max-Makhrov
Max-Makhrov / createValidation.js
Last active October 11, 2020 08:39
2D Dependent Dropdown List. Max Makhrov
function make2DDataValidation() {
// ............................... Settings ......................................
// Sheet names
var tsheet = 'Sheet1'; // The name of the work sheet with data validation
var dsheet = 'data'; // The name of the data sheet
// The data validation range:
var rownum = 1000; // The number of the last row of validation
=ArrayFormula(
transpose(split(rept(concatenate(A2:A&char(9)),counta(B2:B)),char(9)))
&" "&
transpose(split(concatenate(rept(B2:B&char(9),counta(A2:A))),char(9)))
)