![]() |
Formula function με ημερομηνία 1 Συνημμένο(α) Καλησπέρα θα ήθελα αν κάποιος έχει λιγο χρόνο να με βοηθήσει με κάτι που είναι δύσκολο για το δικό μου επίπεδο. Έχω φτιάξει 2 modules. To πρώτο διαβάζει "πράσινο" και "κόκκινο" χρώμα κελιού Function CheckColor(range) If range.Interior.Color = RGB(256, 0, 0) Then CheckColor = "Red" ElseIf range.Interior.Color = RGB(0, 176, 80) Then CheckColor = "Green" Else CheckColor = "Neither" End If End Function To δεύτερο ανάλογα με το χρώμα του κελιού κάνει άλλη πράξη με τον αριθμό του Στο "κόκκινο" αφαιρεί 6 Στο "πράσινο" προσθέτει (cell value-1)*0.97 Function Daily(MyRange) Daily = 0 For Each Cell In MyRange If Cell.Interior.Color = RGB(255, 0, 0) Then Daily = Daily - 6 ElseIf Cell.Interior.Color = RGB(0, 176, 80) Then Daily = Daily + (Cell.Value - 1) * 0.97 Else: Daily = Daily End If Next Cell End Function Μέχρι εδώ τα καταφέρνω. Αυτό που θέλω ειναι να "διαβάζω" την ημερομηνία και να "τραβάω" μόνο εκείνο το range. Δηλαδή, στο παράδειγμα που κάνω Upload, θελω να "διαβάζω" στην στήλη Α που εχέι "24 Feb" και να κάνει τον κώδικα του daily για αυτες τις τιμες. Στο παράδειγμα μου κάνουν μόνο οι τιμές ( 3,58 κόκκινο, 1,58 κόκκινο, 2,77 πράσινο, που έχουν ημερομηνία 24 Feb) Οπότε αναμένω να κάνει -6-6+(2,77-1)*0,97 Δοκίμασα =IF(A1:A100 = "*"&A21&"*"; daily(F1:F100)) αλλά κάτι γράφω λάθος. Ευχαριστώ πάρα πολύ! |
1 Συνημμένο(α) Καλησπέρα Μηνά, Ελπίζω να σε καλύπτει η μορφή της Daily(). Την τροποποίησα έτσι ώστε να δέχεται ως ορίσματα τρία εύρη: το πρώτο εύρος αφορά τα κελιά με τα χρώματα, το δεύτερο τις ημερομηνίες και το τρίτο το κελί με την ημερομηνία που ψάχνεις. Θεωρώ πως οι ημερομηνίες είναι σε μορφή κειμένου. Έλεγξε τη σύνταξη της συνάρτησης στα γκρι κελιά. Τα δύο πρώτα εύρη πρέπει να έχουν τις ίδιες γραμμές και το τρίτο όρισμα αποτελείται από ένα κελί. Όπως θα διαπιστώσεις, σημαντικό είναι το $ όταν ορίζεις τα εύρη στη συνάρτηση, ώστε να παραμένουν σταθερά όταν τραβάς τον τύπο και στα υπόλοιπα κελιά. |
Εύχαριστω πάρα πάρα πολυ για τον χρόνο σου. Ωραία πληροφορία αυτή με το $. Δεν μου υπολογίζει καλά τα νούμερα όμως. Παράδειγμα στις 24 Feb έχουμε ( 3,58 κόκκινο, 1,58 κόκκινο, 2,77 πράσινο) Άρα θα ήθελα να κάνει -6-6+(2,77-1)*0,97=-12+1,7169=-10,2831 Στις 25 Feb έχει μονο 1 κόκκινο Άρα ήθελα να κάνει -6 Δεν μπορώ να δω που είναι το λάθος όμως. p.s. πολυ ωραίο avatar έχεις |
Καλημέρα Μηνά, Χρησιμοποίησα λάθος λογική, όπως φαίνεται... Αντικατέστησε τον κώδικα της daily με τον παρακάτω και έλεγξε αν όλα είναι εντάξει: Κώδικας: Function Daily(MyColors As range, MyDates As range, Str As range) As Double |
1 Συνημμένο(α) Καλησπέρα Και μια πρόταση με συνάρτηση πίνακα. |
Παράθεση:
|
Παράθεση:
|
Μηνά είναι εύκολο. Κάνε μια δοκιμή στο βιβλίο που ανέβασα: 1. Κάνε κλικ σε ένα κελί και σύρε το ποντίκι δεξιά και κάτω ώστε να επιλέξεις μια περιοχή 2 στηλών με αριθμό γραμμών ίσο με τον αριθμό των ημερομηνιών (πχ K2:L14) 2. Στο πλαίσιο των τύπων (δεξιά από το fx) πληκτρολογούμε τη συνάρτηση: =Daily(A2:A14;F2:F14) 3. Με πατημένα τα κουμπιά Ctrl και Shift, πατούμε και το Enter. |
Θα το δοκιμάσω, αλλά μόλις μου έβγαλε ένα σφάλμα ακόμα (όχι στον πίνακας, στο daily). Στην ουσία εγώ έχω 6-7 sheet με τους ίδιους κώδικες, στο ίδιο αρχείο excel. Το καθένα από αυτά εχεί διαφορετικα input αν ημερομηνία και έτσι βγάζει διαφορετικά συνολικά αποτελέσματα για την κάθε μέρα. Του βάζω καινούρια αποτελέσματα στο sheet1 και κάνω alt+shift+ctrl+f9 για να κανει refresh και να μου πέρασει τα αποτελέσματα το daily. αύτο χαλάει όλα τα υπόλοιπα sheet στο daily όμως. Γιατί συμβαίνει αύτό; Μπορώ να το αποφυγω; |
Καλημέρα Επειδή δε γνωρίζω τη δομή του βιβλίου εργασίας σου, όσα αναφέρω παρακάτω βασίζονται στο παραδειγματικό βιβλίο που ανέβασα (ταυτίζεται με το συνημμένο σου): 1) Η συνάρτηση Daily έχει 2 ορίσματα (τη στήλη με τις ημερομηνίες A2:A14 και την έγχρωμη F2:F14). Τα ορίσματα χωρίζονται με ; (ερωτηματικό) για ελληνικό Excel και με , (κόμμα) για αγγλικό. 2) Αν κάνεις αλλαγές μέσα στα κελιά των ορισμάτων (αλλάξεις κάποια ημερομηνία ή τιμή στην έγχρωμη στήλη) η συνάρτηση Daily θα επαναϋπολογιστεί αυτόματα. 3) Αν προσθέσουμε ημερομηνίες (επεκτείνουμε τις 2 στήλες ) θα πρέπει να, όπως περιγράφω, να επανατοποθετήσουμε στο φύλλο τη συνάρτηση Daily, ώστε να ανταποκρίνεται στα νέα δεδομένα (νέα περιοχή επιλογής και ορίσματα). 4) Αν κάνουμε αλλαγή στο χρώμα κάποιου κελιού δεν προκαλείται αυτόματος υπολογισμός. Στην περίπτωση αυτή κάνουμε χειροκίνητο υπολογισμό (καρτέλα Formulas -> Calculation Sheet). Το κουμπί Calculation Now επαναϋπολογίζει όλο το βιβλίο (όχι μόνο το τρέχον Sheet). |
| Η ώρα είναι 20:36. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.