excelspreadsheetsfunctions

Google επεκτάσεις App script - Functions

Το Google Apps Script είναι μια γλώσσα προγραμματισμού που βασίζεται σε JavaScript και σας επιτρέπει να αυτοματοποιείτε και να επεκτείνετε τις λειτουργίες των προϊόντων της Google, όπως το Google Sheets, το Google Docs, το Gmail και άλλα.

Τι είναι οι "Επεκτάσεις" στο Google Apps Script;
Επεκτάσεις: Είναι πρόσθετες δυνατότητες που μπορείτε να προσθέσετε στις εφαρμογές της Google. Με το Apps Script, μπορείτε να δημιουργήσετε προσαρμοσμένες λειτουργίες, να αυτοματοποιήσετε εργασίες και να συνδέσετε διάφορες υπηρεσίες.

Τι είναι οι "Functions";

Functions (Συναρτήσεις): Είναι κομμάτια κώδικα που εκτελούν συγκεκριμένες εργασίες. Στο Google Apps Script, μπορείτε να δημιουργήσετε τις δικές σας συναρτήσεις ή να χρησιμοποιήσετε ενσωματωμένες συναρτήσεις για να αλληλεπιδράσετε με τα δεδομένα σας.

Πώς λειτουργεί;

Δημιουργία Συνάρτησης: Μπορείτε να γράψετε συναρτήσεις για να εκτελέσετε διάφορες εργασίες, όπως να επεξεργαστείτε δεδομένα σε ένα φύλλο, να στείλετε emails ή να αλληλεπιδράσετε με άλλες API.

Ενεργοποιήσεις (Triggers): Μπορείτε να ρυθμίσετε triggers για να εκτελούνται οι συναρτήσεις σας αυτόματα σε συγκεκριμένες συνθήκες, όπως όταν ανοίγεται το φύλλο ή όταν επεξεργάζεται μια κυψέλη.

Δημιουργία Προσαρμοσμένων Μενού: Μπορείτε να προσθέσετε κουμπιά και μενού στις εφαρμογές Google για να διευκολύνετε τη χρήση των συναρτήσεών σας.

Χρήσεις

Αυτοματοποίηση: Μπορείτε να αυτοματοποιήσετε καθημερινές εργασίες, όπως η ενημέρωση δεδομένων.
Εκθέσεις και Ανάλυση: Δημιουργία εκθέσεων με βάση δεδομένα σε πραγματικό χρόνο.
Ενοποίηση Υπηρεσιών: Σύνδεση διαφορετικών εφαρμογών της Google και άλλων υπηρεσιών.

Παράδειγμα 1

Ένα απλό παράδειγμα είναι η δημιουργία μιας συνάρτησης που προσθέτει δύο αριθμούς:

function addNumbers(a, b) {
  return a + b;
}

Παράδειγμα 2

Στο παράδειγμα έχουμε στις στήλες Α και Β, επώνυμα και ονόματα αντίστοιχα. Θέλω ένα script το οποίο να ενώνει τις δύο στήλες και να εμφανίζει στη στήλη C το ονοματεπώνυμο.

Ακολουθούν παρακάτω 4 διαφορετικοί τρόποι για να επιτύχουμε το ίδιο αποτέλεσμα

Τρόπος 1

Χρησιμοποιώντας CONCATENATE: Στη στήλη C, στην πρώτη κενή σειρά (π.χ., C1), πληκτρολογήστε τον παρακάτω τύπο:

=CONCATENATE(A1, " ", B1)
Αυτός ο τύπος θα ενώσει το περιεχόμενο του κελιού A1 με το περιεχόμενο του κελιού B1, προσθέτοντας ένα κενό διάστημα μεταξύ τους.

Τρόπος 2
Χρησιμοποιώντας το σύμβολο &: Στη στήλη C, στην πρώτη κενή σειρά (π.χ., C1), πληκτρολογήστε τον παρακάτω τύπο:

=A1 & " " & B1
Αυτός ο τύπος κάνει ακριβώς το ίδιο πράγμα με το παραπάνω παράδειγμα, ενώνοντας τα περιεχόμενα των κελιών A1 και B1 με ένα κενό διάστημα μεταξύ τους.

Αντιγραφή του τύπου: Μετά την εισαγωγή του τύπου στο κελί C1, μπορείτε να το αντιγράψετε και να το επικολλήσετε στις υπόλοιπες σειρές της στήλης C για να εφαρμόσετε τον τύπο σε όλα τα δεδομένα.

Τρόπος 3

Με τη χρήση επέκτασης με function

Μπορείς να δημιουργήσεις μια προσαρμοσμένη συνάρτηση (custom function) στο Google Sheets χρησιμοποιώντας Google Apps Script. Αυτή η συνάρτηση θα παίρνει τα ονόματα από τις στήλες Α και Β και θα τα ενώνει στη στήλη C.

Ακολούθησε τα εξής βήματα:

Άνοιγμα του Google Apps Script (Επεκτάσεις):

Στο Google Sheets, πήγαινε στο μενού "Extensions" (Επεκτάσεις) και επίλεξε "Apps Script".
Δημιουργία της συνάρτησης:

Σβήσε οποιονδήποτε κώδικα υπάρχει και αντικατέστησέ τον με τον παρακάτω κώδικα:

function combineNames(name1, name2) {
if (name1 && name2) {
return name1 + " " + name2;
} else if (name1) {
return name1;
} else if (name2) {
return name2;
} else {
return "";
}
}
Αποθήκευση της συνάρτησης:

Κάνε κλικ στο κουμπί "Αποθήκευση" (το εικονίδιο της δισκέτας).
Χρήση της συνάρτησης στο Google Sheets:

Τώρα, μπορείς να χρησιμοποιήσεις τη συνάρτηση combineNames όπως κάθε άλλη συνάρτηση στο Google Sheets.

Στο κελί C1, πληκτρολόγησε:

=combineNames(A1, B1)
Αντιγραφή του τύπου στις υπόλοιπες σειρές της στήλης C για να συνδυάσεις τα ονόματα στις άλλες σειρές.

Τι κάνει η συνάρτηση combineNames(name1, name2): Ελέγχει αν υπάρχουν τιμές στο name1 (στη στήλη A) και στο name2 (στη στήλη B). Αν υπάρχουν και οι δύο, τις ενώνει με ένα κενό διάστημα ανάμεσά τους. Αν υπάρχει μόνο μία τιμή, επιστρέφει μόνο αυτήν την τιμή. Αν δεν υπάρχει καμία τιμή, επιστρέφει ένα κενό κείμενο.
Με αυτόν τον τρόπο, η στήλη C θα περιέχει τα ονόματα από τις στήλες A και B ενωμένα.

Τρόπος 4

Με function και trigger
Μπορείς να δημιουργήσεις μια συνάρτηση που εκτελείται αυτόματα με ένα trigger στο Google Sheets. Αυτός ο τρόπος είναι χρήσιμος για να ενημερώνεις αυτόματα τη στήλη C με τις ενωμένες τιμές από τις στήλες A και B κάθε φορά που προστίθεται ή αλλάζει μια τιμή.

Ακολούθησε τα παρακάτω βήματα:

Άνοιγμα του Google Apps Script:

Στο Google Sheets, πήγαινε στο μενού "Extensions" (Επεκτάσεις) και επίλεξε "Apps Script".
Δημιουργία της συνάρτησης:

Σβήσε οποιονδήποτε κώδικα υπάρχει και αντέγραψε τον παρακάτω κώδικα:

function combineNames() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var rangeA = sheet.getRange("A1:A" + sheet.getLastRow());
var rangeB = sheet.getRange("B1:B" + sheet.getLastRow());
var valuesA = rangeA.getValues();
var valuesB = rangeB.getValues();
var combined = [];

for (var i = 0; i < valuesA.length; i++) {
var nameA = valuesA[i][0];
var nameB = valuesB[i][0];
if (nameA && nameB) {
combined.push([nameA + " " + nameB]);
} else if (nameA) {
combined.push([nameA]);
} else if (nameB) {
combined.push([nameB]);
} else {
combined.push([""]);
}
}
// Ενημέρωση στήλης C
sheet.getRange(1, 3, combined.length, 1).setValues(combined);
}

Δημιουργία Trigger

Μετά την αποθήκευση του κώδικα, πήγαινε στο μενού "Triggers" (Ενεργοποιήσεις).
Κάνε κλικ στο "+ Add Trigger" (Προσθήκη Trigger).
Ρύθμισε το trigger να εκτελεί τη συνάρτηση combineNames.
Επίλεξε "From spreadsheet" και στη συνέχεια "On edit".
Κάνε κλικ στο "Save" (Αποθήκευση).

Πώς λειτουργεί:
Η συνάρτηση combineNames διαβάζει τις τιμές από τις στήλες A και B.
Στη συνέχεια, ενώνει τα ονόματα και τα τοποθετεί στη στήλη C.
Το trigger θα ενεργοποιεί τη συνάρτηση κάθε φορά που γίνεται επεξεργασία στο φύλλο εργασίας.
Έτσι, η στήλη C θα ενημερώνεται αυτόματα με τα συνδυασμένα ονόματα όταν αλλάζουν οι τιμές στις στήλες A ή B.

Δημιουργία κουμπιού



Χαρακτηριστικά κουμπιού


Καλούμε την function που εκτελεί αυτό που θέλουμε:
στην προκειμένη περίπτωση να ενώσει τα ονόματα των στηλών σε μία.

Παράδειγμα 3

Έχω ένα φύλλο με την ονομασία "ΣΤΟΙΧΕΙΑ ΜΑΘΗΤΩΝ" όπου καταχωρώ τα στοιχεία των μαθητών/τριών του τμήματος. Θέλω σε ένα άλλο φύλλο "ΕΥΡΕΣΗ" με ένα dropdown μενού να μπορώ να επιλέγω το επίθετο του μαθητή ή της μαθήτριας και να εμφανίζονται τα στοιχεία του/της στα διπλανά κελιά. 






function onEdit(e) {
  // Έλεγχος αν το αντικείμενο e είναι διαθέσιμο
  if (!e) {
    Logger.log("Η συνάρτηση onEdit εκτελέστηκε χωρίς το αντικείμενο e.");
    return;
  }

  var sheetName = "ΕΥΡΕΣΗ";
  var dataSheetName = "ΣΤΟΙΧΕΙΑ ΜΑΘΗΤΩΝ";
  
  var sheet = e.source.getActiveSheet();
  
  // Ελέγχουμε αν η επεξεργασία έγινε στο σωστό φύλλο και κελί
  if (sheet.getName() !== sheetName || e.range.getA1Notation() !== "A2") {
    return;
  }
  
  var selectedName = e.value;
  var dataSheet = e.source.getSheetByName(dataSheetName);
  
  var dataRange = dataSheet.getRange(2, 1, dataSheet.getLastRow() - 1, 7);
  var dataValues = dataRange.getValues();
  
  for (var i = 0; i < dataValues.length; i++) {
    if (dataValues[i][0] === selectedName) {
      sheet.getRange("B2:G2").setValues([dataValues[i].slice(1)]);
      return;
    }
  }
  
  // Καθαρισμός των κελιών αν δεν βρεθεί το όνομα
  sheet.getRange("B2:G2").clearContent();
}

Σημαντικές παρατηρήσεις:

Η συνάρτηση πρέπει να εκτελείται μόνο μέσω τροποποίησης του κελιού στο φύλλο: Όταν επεξεργάζεστε το κελί A2 στο φύλλο "ΕΥΡΕΣΗ", η συνάρτηση θα εκτελείται αυτόματα και θα αναζητεί το όνομα στο φύλλο "ΣΤΟΙΧΕΙΑ ΜΑΘΗΤΩΝ".

Αποφύγετε την εκτέλεση από τον επεξεργαστή Apps Script: Η συνάρτηση onEdit δεν πρέπει να εκτελείται χειροκίνητα μέσω του κουμπιού "Run" στον επεξεργαστή Google Apps Script, γιατί το e δεν θα είναι διαθέσιμο και θα προκαλέσει το σφάλμα.