rafinos Δημοσ. 23 Μαϊου Δημοσ. 23 Μαϊου Γεια σας, στο excel αν θέλω να έχω μια δυναμική dropdown λίστα (δηλαδή να προστίθενται αυτόματα τα δεδομένα ενός κελιού σε αυτήν) φτιάχνω έναν πίνακα (table) και ότι προσθέτω σε αυτόν προστίθεται αυτόματα στη λίστα. Υπάρχει τρόπος να γίνει αυτό στο google sheets; Δεν μιλάω για την μορφοποίηση και για την προσθήκη "Φίλτρου" ώστε να μοιάζει με πίνακα. Με ενδιαφέρει να προστίθενται αυτόματα στις επιλογές της dropdown list τα μελλοντικά δεδομένα μιας στήλης του εν λόγω «πίνακα».
Λύση Billator Δημοσ. 23 Μαϊου Λύση Δημοσ. 23 Μαϊου (επεξεργασμένο) 6 ώρες πριν, rafinos είπε Γεια σας, στο excel αν θέλω να έχω μια δυναμική dropdown λίστα (δηλαδή να προστίθενται αυτόματα τα δεδομένα ενός κελιού σε αυτήν) φτιάχνω έναν πίνακα (table) και ότι προσθέτω σε αυτόν προστίθεται αυτόματα στη λίστα. Υπάρχει τρόπος να γίνει αυτό στο google sheets; Δεν μιλάω για την μορφοποίηση και για την προσθήκη "Φίλτρου" ώστε να μοιάζει με πίνακα. Με ενδιαφέρει να προστίθενται αυτόματα στις επιλογές της dropdown list τα μελλοντικά δεδομένα μιας στήλης του εν λόγω «πίνακα». Ναι μπορεί να γίνει με Google script, έχω υλοποιήσει περίπου κάτι τέτοιο. (Δυναμικό search bar, το οποιο σε περίπτωση που δεν υπάρχει μία τιμή να λειτουργεί ως import bar για το table που παρακολουθεί, από το ίδιο μπορείς να κάνεις και update τα δεδομένα του κεντρικού table ώστε να μην χρειαστεί να το "ανοιξεις" ποτέ. ) Στην ουσία το πετυχαίνεις με το να "προσθέτεις" εκ νέου το dropdown validation. Το κάνεις με ένα γενικό range ώστε να δουλεύει πάντα πχ "C1:C" var ss = SpreadsheetApp.getActiveSpreadsheet(); var mainSheet = ss.getSheetByName("Main"); var tableSheet = ss.getSheetByName("Table"); // Update the data validation for 'Main'!A1 cell var cell = mainSheet.getRange('A1'); var range = tableSheet.getRange('C1:C'); var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range, true).build(); cell.setDataValidation(rule); Επεξ/σία 23 Μαϊου από Billator 2
rafinos Δημοσ. 24 Μαϊου Μέλος Δημοσ. 24 Μαϊου Δεν γνωρίζω καθόλου από Google Script αλλά μπορώ να καταλάβω ότι είναι κάτι σαν javascript το συγκεκριμένο. Το μόνο που θέλω να μου διευκρινήσεις είναι το cell. Είναι ουσιαστικά το κελί το οποίο λειτουργεί σαν search bar;
Billator Δημοσ. 24 Μαϊου Δημοσ. 24 Μαϊου (επεξεργασμένο) 7 ώρες πριν, rafinos είπε Δεν γνωρίζω καθόλου από Google Script αλλά μπορώ να καταλάβω ότι είναι κάτι σαν javascript το συγκεκριμένο. Το μόνο που θέλω να μου διευκρινήσεις είναι το cell. Είναι ουσιαστικά το κελί το οποίο λειτουργεί σαν search bar; Το Google script είναι serverside JavaScript στην πραγματικότητα. Οπότε είναι αρκετά εύκολο το να γράψεις. Ακριβώς στο cell θα ενημερώνεται η λίστα όπως θες στο κελί 'Main!A1'. To παραπάνω που παρέθεσα το μόνο που κάνει είναι το action για overwrite του validation formatting στο cell A1. Κάθε φορά που θα τρέχει αυτό το κομμάτι θα "δίνει" το ανανεωμένο column range.. Για να γίνει αυτόματα η ενημέρωση θα χρειαστεί να συνδυαστεί με ένα function onEdit (αν η προσθήκη των νέων γραμμών γίνεται από τον χρήση) ή με ένα onChange σε περίπτωση που η προσθήκη γίνεται από κάποιο αυτοματισμό / plugin etc. Αλλιώς μπορείς να κάνεις ένα action button, custom menu ή time trigger function. Αν θες παραπάνω βοήθεια σε καμία ώρα θα είμαι στο γραφείο για να σου παραθέσω ένα workable sample code. Επεξ/σία 24 Μαϊου από Billator 1
Billator Δημοσ. 24 Μαϊου Δημοσ. 24 Μαϊου function onEdit(e) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var mainSheet = ss.getSheetByName("Main"); var tableSheet = ss.getSheetByName("Table"); // Check if the edit was made in the 'Table' sheet if (e.range.getSheet().getName() === "Table") { // Update the data validation for 'Main'!A1 cell var cell = mainSheet.getRange('A1'); var range = tableSheet.getRange('C1:C'); var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range, true).build(); cell.setDataValidation(rule); } } // Function to install the onEdit trigger function installTrigger() { ScriptApp.newTrigger("onEdit") .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet()) .onEdit() .create(); } Το δεύτερο κομμάτι βάλτο αν δεν γνωρίζεις πως να φτιάξεις trigger στο google sheet και τρέξτο απλά μια φορά. Για να δημιουργηθεί το onEdit Trigger. Κάθε φορά που θα κάνεις οποιοδήποτε είδος αλλαγής στο sheet tab "Table" θα τρέχει η συνάρτηση αυτή αυτόματα. Σε περίπτωση που θες να το "περιορίσεις" ακόμα περισσότερο, μπορείς να βάλεις αντί για όλο το sheet να παρακολουθεί κάποιο συγκεκριμένο column όταν δεχτεί επεξεργασία, για να μην σου τρέχει συνέχεια όταν επεξεργάζεται το table. Αν θες τώρα να καλείς όλο το row από το "Table" κάθε φορά που επιλέγεις κάτι από το drop down αυτό είναι άλλο action αν θες να σου γράψω πως λειτουργεί μία τέτοια βασική λογική. 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα