rafinos Δημοσ. 30 Μαϊου Δημοσ. 30 Μαϊου (επεξεργασμένο) Γεια σας, παραθέτω δύο εικόνες για να σας εξηγήσω καλύτερα τι θέλω να κάνω. Θέλω μέσω script ή αν είναι εύκολο διαφορετικά δεν έχω θέμα, όταν τσεκάρω ένα checkbox της δεύτερης εικόνας να τσεκάρει το όνομα της στήλης A π.χ. Rafinos και να προσθέτει τον αριθμό (αθροιστικά) στο κελί B της πρώτης εικόνας δίπλα από το όνομα Rafinos στην προκειμένη ή στο όνομα που ανήκει το checkbox. Επίσης αν το ξετσεκάρω θέλω να γίνεται και η αντίστοιχη αφαίρεση. Δεν έχω πρόβλημα με το να γράψω script στην javascript που κάνει πρόσθεση και αφαίρεση, απλά δεν είμαι εξοικειωμένος με τα google scripts. Π.χ. δεν ξέρω πως να πάρω το index του row όταν τσεκάρω ή ξετσεκάρω το checkbox ώστε να γίνει ο έλεγχος του ονόματος στην συγκεκριμένη γραμμή κτλ. Επεξ/σία 30 Μαϊου από rafinos
Billator Δημοσ. 30 Μαϊου Δημοσ. 30 Μαϊου Καλησπέρα για το workcase scenario που έχεις θεωρώ το πιο απλό είναι μια φόρμουλα της λογικής: IFERROR ( INDEX ( MATCH (LOGICAL EXPRESSION) ) ) Όπου, MATCH -> Παίρνουμε το 1ο row του TRUE*TRUE INDEX -> Κάνουμε INDEX την στήλη που θέλουμ (Β εδώ) με το συγκεκριμένο row IFERROR -> Αν δεν υπάρξει TRUE*TRUE Matching, δεν θα έχουμε row οπότε εκεί βάλε κενό "" Οπότε προκύπτει =IFERROR( INDEX(database!B:B, MATCH(1, (database!A:A=A1) * (database!C:C=TRUE), 0) ), "" ) όπου είναι αρκετά πιο απλό από τον κώδικα που χρειάζεται (που δεν είναι κάτι δύσκολο, απλά ίσως για αυτό είναι πιο απλή λύση).
rafinos Δημοσ. 30 Μαϊου Μέλος Δημοσ. 30 Μαϊου Ναι αλλά το συγκεκριμένο παίρνει το value από την στήλη B της δεύτερης εικόνας και την προσθέτει στην στήλη B της πρώτης εικόνας δίπλα στο όνομα που συνδέεται με το chechbox;
Billator Δημοσ. 30 Μαϊου Δημοσ. 30 Μαϊου 1 ώρα πριν, rafinos είπε Ναι αλλά το συγκεκριμένο παίρνει το value από την στήλη B της δεύτερης εικόνας και την προσθέτει στην στήλη B της πρώτης εικόνας δίπλα στο όνομα που συνδέεται με το chechbox; Ακριβώς, δείχνει το value της Β στήλης (από την δεύτερη εικόνα) από το οποίο το checkbox είναι ενεργοποιημένο στην πρώτη εικόνα.
rafinos Δημοσ. 30 Μαϊου Μέλος Δημοσ. 30 Μαϊου 2 λεπτά πριν, Billator είπε Ακριβώς, δείχνει το value της Β στήλης (από την δεύτερη εικόνα) από το οποίο το checkbox είναι ενεργοποιημένο στην πρώτη εικόνα. Ναι απλά εγώ θέλω αν τσεκαριστούν περισσότερα του ενός checkboxes που ανήκουν στο ίδιο όνομα να γίνει πρόσθεση μεταξύ τους και αν γίνει uncheck να γίνει αφαίρεση. 1
Λύση Billator Δημοσ. 30 Μαϊου Λύση Δημοσ. 30 Μαϊου 9 λεπτά πριν, rafinos είπε Ναι απλά εγώ θέλω αν τσεκαριστούν περισσότερα του ενός checkboxes που ανήκουν στο ίδιο όνομα να γίνει πρόσθεση μεταξύ τους και αν γίνει uncheck να γίνει αφαίρεση. Οκ δεν το είχα καταλάβει αυτό. Τότε θέλουμε κάτι τέτοιο: =IF(SUMIFS(database!B:B, database!A:A, A1, database!C:C, TRUE) = 0, "", SUMIFS(database!B:B, database!A:A, A1, database!C:C, TRUE))
rafinos Δημοσ. 30 Μαϊου Μέλος Δημοσ. 30 Μαϊου (επεξεργασμένο) 44 λεπτά πριν, Billator είπε Οκ δεν το είχα καταλάβει αυτό. Τότε θέλουμε κάτι τέτοιο: =IF(SUMIFS(database!B:B, database!A:A, A1, database!C:C, TRUE) = 0, "", SUMIFS(database!B:B, database!A:A, A1, database!C:C, TRUE)) Αυτό το προσθέτω στο κελί B της πρώτης εικόνα και όπου database βάζω το όνομα του sheet της δεύτερης εικόνας έτσι δεν είναι; Αν ναι δεν μου λειτουργεί γιατί είναι λίγο πιο σύνθετο το κανονικό αρχείο στο οποίο θέλω να προσθέσω αυτή την επιλογή. Ωστόσο, κατάλαβα το σκεπτικό, οπότε θα το δοκιμάσω και αν δεν το καταφέρω επανέρχομαι! Σε ευχαριστώ πάρα πολύ για τον χρόνο που έχεις αφιερώσει! Βασικά λειτουργεί απλά θέλει ";" αντί για "," THANKS! Επεξ/σία 30 Μαϊου από rafinos 1
Billator Δημοσ. 30 Μαϊου Δημοσ. 30 Μαϊου 1 ώρα πριν, rafinos είπε Βασικά λειτουργεί απλά θέλει ";" αντί για "," THANKS! Αν το χρησιμοποιείς σε excel ναι θέλει argument separators ";" και όχι "," . Κανένα πρόβλημα αν κολλήσεις πουθενά μπορείς να με κάνεις tag 👍
rafinos Δημοσ. 30 Μαϊου Μέλος Δημοσ. 30 Μαϊου 6 ώρες πριν, Billator είπε Αν το χρησιμοποιείς σε excel ναι θέλει argument separators ";" και όχι "," . Κανένα πρόβλημα αν κολλήσεις πουθενά μπορείς να με κάνεις tag 👍 Όχι καί στο sheets με argument separator λειτουργεί μόνο. Μήπως υπάρχει κάποια ρύθμιση για να γίνεται αυτόματα copy στα από κάτω κελιά η συνάρτηση σε περίπτωση που τελειώσουν οι διαθέσιμες γραμμές και πρέπει να προστεθούν νέες; Δεν εννοώ με script κάτι απλούστερο.
Billator Δημοσ. 30 Μαϊου Δημοσ. 30 Μαϊου (επεξεργασμένο) 12 ώρες πριν, rafinos είπε Όχι καί στο sheets με argument separator λειτουργεί μόνο. Μήπως υπάρχει κάποια ρύθμιση για να γίνεται αυτόματα copy στα από κάτω κελιά η συνάρτηση σε περίπτωση που τελειώσουν οι διαθέσιμες γραμμές και πρέπει να προστεθούν νέες; Δεν εννοώ με script κάτι απλούστερο. Χωρίς να μπορώ να το δοκιμάσω γιατί δεν είμαι στον υπολογιστή αλλά στην ουσία θες ARRAYFORMULA οπότε αν δεν κάνω κάποιο λάθος στο format είμαστε κάπως έτσι: =ARRAYFORMULA(IF(A:A = "", "", IF(SUMIFS(database!B:B, database!A:A, A:A, database!C:C, TRUE) = 0, "", SUMIFS(database!B:B, database!A:A, A:A, database!C:C, TRUE)))) edit: Καλημέρα δεν λειτουργεί. @rafinos Και κόλλησα τώρα για το populate με φόρμουλα Οπότε θα στο δείξω όπως το χρησιμοποιώ εγώ με script: // Solution 1 // Αυτό απαιτεί action run (πχ μπορείς ένα κουμπί να βάλεις που όταν το πατάς θα τρέχει η ένα time trigger) // Αυτό κάνει overwrite όλη την στήλη, παίρνει τη φόρμουλα από το B1 και το κάνει Populate σε όλη την στήλη function populateFormulas() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var finalSheet = ss.getSheetByName("final"); finalSheet.getRange('B2:B').setFormulaR1C1(finalSheet.getRange('B1').getFormulaR1C1()); } // Solution 2 // Αυτό γίνεται αυτόματα μόνο στο Row που μπαίνει function onEdit(e) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var finalSheet = ss.getSheetByName("final"); // Ensure we only run the script if a new row is added var range = e.range; if (range.getSheet().getName() === "final" && range.getRow() > 1) { var formula = finalSheet.getRange('B1').getFormula(); finalSheet.getRange('B' + range.getRow()).setFormula(formula); } } Η λογική: finalSheet.getRange('B2:B').setFormulaR1C1(finalSheet.getRange('B1').getFormulaR1C1()); είναι σωτήρια όταν θες να φτιάξεις απλά ένα populate dropdown column χωρίς να σε νοιάζουν λεπτομέρειες και χωρίς να χρειάζεσαι πρακτικά να συντάζεις κώδικα (μιας και είναι copy paste και απλά αλλάζεις τα columns) ΠΡΟΣΟΧΗ, θα πρέπει να παίξεις με ένα: IF(A1="","",your_formula) Ώστε σε περίπτωση που στο A1 (σε κάποιο τυχαίο Row δλδ) δεν έχει Data να μην βγάλει error απλά να το δείχνει κενό. Επεξ/σία 31 Μαϊου από Billator 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα