Jump to content

apostolos55

Members
  • Content Count

    70
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by apostolos55

  1. καλησπέρα φίλε Bernidakis και προς όλους τους φίλους στο Michanikos.gr, απλά σας ενημερώνω ότι το εργαλείο δούλεψε πολύ καιρό άψογα, πλέον όμως και το ΙΚΑ έχει ακολουθήσει τις εξελίξεις και ο προσωπικός μου χρόνος δεν μου επιτρέπει να ασχοληθώ με ενημερώσεις κλπ. Μπορεί να έχουν αλλάξει οι προδιαγραφές του ΙΚΑ για τα αποστελλόμενα αρχεία. Δεν γνωρίζω και δεν μπορώ να ασχοληθώ. Ο κώδικας υπάρχει και είναι ανοικτός αν κάποιος άλλος επιθυμεί να ασχοληθεί. χαιρετώ Απόστολος
  2. καλησπέρα και ο τύπος υπολογισμού στο Excel με εισόδημα στο Κ11 είναι: =IF(K11<=12000;11%*K11;1320+(K11-12000)*33%) (μπορεί να θέλει , αντί για ; σε εσάς). Με τις υγείες μας...
  3. Fast-Track = Καταπάτηση της δημοκρατίας και της Ισότητας! τέλος!!! Τι πάει να πει fast-track? γιατί να παρακάμπτονται όλοι οι μηχανισμοί ελέγχου που ισχύουν για τους υπόλοιπους? Αντί να οργανώσουν τις υπηρεσίες για όλους, να μειωθεί και η γραφειοκρατεία, τις παρακάμπτουν! Ας κινηθούν λίγο σωστά και θα δουν αν χρειάζεται βοήθεια η αγορά. Άρση των εμποδίων του δημοσίου χρειάζεται, και μια σταθερότητα πολιτική-οικονομική. Αυτά για την ώρα. ΥΓ: σε μελέτη παλαιότερα είχα να κάνω με 3 αρχαιολογικές υπηρεσίες ταυτόχρονα, και τελικά η πιο άσχετη και χωρίς να εμπίπτει το έργο σε προστατευόμενη περιοχή ζήτησε πλήρες αντίγραφο (και ενημερώσεις) των αρχιτεκτονικών!!! τι να λέμε...
  4. Καλησπέρα για ξεκλείδωτα sites (να μην χρειάζεται κωδικούς και login) δουλεύεις με web-queries. Υπάρχουν άπειρα παραδείγματα-tutorials με λίγο ψάξιμο Όταν απαιτείται login κλπ τότε τα web-queries δε δουλεύουν (τουλάχιστον όχι πάντα) οπότε είναι κομματάκι δύσκολο. Μια "καλή" βοήθεια έχουν εδώ αλλά αν είσαι αρχάριος ίσως δυσκολευτείς. με μια επιπλέον στήλη μπορείς να δουλέψεις ως εξής: αρ. τιμές στη στήλη Α από Α2 ως Α43 διάφορα σε στείλες ως και C στήλη D στο D2 = IF(COUNTIF($A$2:$A$43;A2)>1;ROW();9999) τραβάς τον τύπο κάτω μέχρι το D43 στο D45 = COUNTIF(D2:D43;"<9999") στο Ε2 = IF(ROW()-1>$D$45;"";SMALL($D$2:$D$43;ROW()-1)) τραβάς μέχρι E40. Βάφεις έχρωμο το E41 να ξέρεις που τελειώνει ο τύπος... κρύβεις στήλη D τελείωσες. Δώσ'του λίγο να το εμπεδώσεις και προσάρμοσέ το στα δεδομένα σου Χαιρετώ
  5. μια πιο πασπαρτου λύση, μόνο μην μου ζητήσετε να την εξηγήσω... 1ο βήμα: στο Κελί Α2 βάζουμε το κείμενο "ααα βββ γγγ δδδ" (στο Α1 έχουμε τίτλο!) 2ο βήμα: στο κελί Β2 γράφουμε: =TRANSPOSE(MID($A2;SMALL(IF(MID(" "&$A2&" ";ROW($1:$40);1)=" ";ROW($1:$40);999);ROW($1:$10));SMALL(IF(MID(" "&$A2&" ";ROW($1:$40);1)=" ";ROW($1:$40);999);ROW($1:$10)+1)-SMALL(IF(MID(" "&$A2&" ";ROW($1:$40);1)=" ";ROW($1:$40);999);ROW($1:$10)))) και πατάμε ctrl+shift+enter (εισαγωγή ως matrix) 3ο βήμα: Μαρκάρουμε τα κελία Β2 ως Κ2 / πατάμε F2 / ctrl+shift+enter (επεκτείνουμε το matrix σε 10 κελιά σύνολο για αντίστοιχα αποτελέσματα) 4ο βήμα: Τραβάμε τα κελιά Β2-Κ2 όσο κάτω χρειάζεται... δυο λόγια: 1) το $1:$40 εξαρτάται από το μήκος του αλφαριθμητικού που έχουμε στο Α2. Μπορούμε να το κάνουμε $1:$200 ή όσο θέλουμε ώστε να καλυπτόμαστε πάντα, με αντίστοιχη επιβάρυνση σε υπολογισμούς-χρόνο εκτέλλεσης. ΑΛΛΑΓΕΣ σε ΟΛΑ τα $1:$40 και όχι μόνο στο 1ο, εφαρμογή με ctrl+shift+enter 2) Το $1:$10 προσδιορίζει τον αριθμό των αποτελεσμάτων, στο παράδειγμα είναι 10. Για λιγότερα πάμε στο 2ο βήμα και επιλέγουμε λιγότερα κελιά, διορθώνοντας παντού το $1:$10 σε πχ $1:$7 -->Β2-Η2, εφαρμογή με ctrl+shift+enter !!τα matrix δεν μικραίνουν μετά τον ορισμό τους, μόνο μεγαλώνουν!! Για Περισσότερα διορθώνουμε το $1:$10 σε πχ: $1:$12 παντού / ctrl+shift+enter και μετά επιλέγουμε Β2-Μ2 / F2 / ctrl+shift+enter (στο 3ο ή βήμα 4ο βήμα) η συνάρτηση ως κώδικας: >=TRANSPOSE(MID($A2;SMALL(IF(MID(" "&$A2&" ";ROW($1:$40);1)=" ";ROW($1:$40);999);ROW($1:$10));SMALL(IF(MID(" "&$A2&" ";ROW($1:$40);1)=" ";ROW($1:$40);999);ROW($1:$10)+1)-SMALL(IF(MID(" "&$A2&" ";ROW($1:$40);1)=" ";ROW($1:$40);999);ROW($1:$10)))) Καλύ τύχη! Τιπ! αν ο κώδικας matrix μπει επιτυχώς τότε στο κελί θα βλέπετε τη formula εντός {} πχ: αντι για =Α1 θα έχουμε {=Α1} κλπ
  6. Καλημέρα σας, και καλό μήνα! Θα αναφερθώ με την αγγλική ορολογία καθώς έτσι ανατρέχουμε ευκολότερα σε σχετική βοήθεια... Προφανώς μιλάτε για Data Validation, το οποίο έχει αναπτυχθεί εκτενώς και στο παρόν forum παλιότερα εδώ, με τις κατάλληλες παραπομπές και αρχειάκι demo. Επαναλαμβάνω ότι ένα ψάξιμο μας γλυτωνει από πολύ κόπο... Να αναφέρω επίσης ότι στο Excel DataValidation με εικόνες ή οριζοντίως (αντί του κατακορύφου) δεν γίνεται με "αυτόματο" τρόπο χωρίς χρήση πολύ προχωρημένης VBA, κάτι τέτοιο όμως δεν προτείνεται για αρχάριους χρήστες κατ'ουδένα τρόπο! Δεν ξέρω για Excel 2013 (ή 365) τι ισχύει... Χαίρετε
  7. μόλις έμαθα ότι η TimeValue υπάρχει και στη VBA!!!! οπότε ο παραπάνω κώδικας αλλάζει σε: > ' Time from String TimeFromAny = TimeValue(TimeOrHours) τώρα καλύπτονται και κάποιες περιπτώσεις 10:00:01 am/pm ή πμ/μμ δηλαδή οι ώρες σε 12ωρη βάση, ενώ η προηγούμενη εφαρμογή ήθελε 24ωρη βάση. χαιρετώ
  8. Καλημέρα Πρόσφατα μου προέκυψε χειρισμός χρόνου σε VBA ... Και όταν άρχισα να βγάζω άκρη, θυμήθηκα μια αρχή του προγραμματισμού, τα λεγόμενα Black-Boxes, δηλαδή να ξέρεις τι βάζεις και τι παίρνεις... πάντα. Σε συνδυασμό με την απαίτηση να μην ψάχνω κάθε φορά αν το κελί έχει χρόνο ή κείμενο, ή αν θέλω να προσθέσω μερικά λεπτά με τι διαιρώ κλπ, προέκυψε η Function TimeFromAny([TimeOrHours],[myMins],[mySecs]) As Variant, όπως φαίνεται όλα είναι Optional. Παραθέτω κώδικα και μετά Παραδείγματα: > ' Time from Any value ' Use Application.WorksheetFunction.IsText to check for text ' The proper way to work with time, since time is Variant! ' ' Creator Apostolos Goulandris - Jan 2013 Function TimeFromAny(Optional TimeOrHours = 0, Optional myMins As Integer = 0, Optional mySecs As Integer = 0) As Variant Dim a1 As Integer, a2 As Integer, thisTime As Long If Application.WorksheetFunction.IsText(TimeOrHours) Then ' Time from String a1 = InStr(TimeOrHours, ":"): a2 = InStr(a1 + 1, TimeOrHours, ":") thisTime = Left(TimeOrHours, a1 - 1) * 3600 + Mid(TimeOrHours, a1 + 1, a2 - a1 - 1) * 60 + Mid(TimeOrHours, a2 + 1) TimeFromAny = Round(thisTime / 86400, 6) ElseIf myMins > 0 Or mySecs > 0 Then ' Time from Values thisTime = TimeOrHours * 3600 + myMins * 60 + mySecs TimeFromAny = Round(thisTime / 86400, 6) Else ' Time from Time TimeFromAny = TimeOrHours End If End Function Παραδείγματα: με κείμενο: TimeFromAny("02:30:20") με τιμές: TimeFromAny(2,30,20) με άλλο χρόνο TimeFromAny(time) στο Excel με κείμενο =TimeFromAny(A1) για πρόσθεση 29' στην τρέχουσα ώρα myTime+TimeFromAny(myMins:=29) για πρόσθεση 1ώρας και 55'' στην τρέχουσα ώρα myTime+TimeFromAny(mySecs:=55,TimeOrHours:=1) ή το ίδιο γραμμένο αλλιώς myTime+TimeFromAny(1,,55) κλπ Μην ξεχνάτε ότι το excel και η VBA χειρίζονται το χρόνο σαν Variant (και περιέχει μέρες και χρόνο). Η timeFromAny παράγει το τμήμα του χρόνου μόνο (το δεκαδικό μέρος δηλαδή). Για προβολή της ώρας σε κατανοητή μορφή, χρησιμοποιείστε την Format, πχ format(TimeFromAny(...),"hh:mm:ss") ή προβάλετε σε φορμαρισμένο κελί (ως time) Μερική αντιστοιχία με την TimeFromAny για Excel μόνο μπορεί να παραχθεί με =IfError(TimeValue(A1);A1) οπότε αν δεν τα καταφέρει με την TimeValue, παίρνει την τιμή.. φυσικά προσθήκη λεπτών ωρών κλπ είναι άλλη ιστορία keep programming mates
  9. Σχετικά μe παλιότερα posts και την EvalMath του Gousgouni gvarth, βρήκα την Evaluate() στο Excel Κρυμμένη από το Excel, αλλά υπαρκτή στο RefersTo στα Named Ranges... κουφάθηκα όταν το είδα και διαπίστωσα ότι δουλεύει... λεπτομέρειες και εδώ.
  10. Επανέρχομαι με κάτι πολύ παλιό, πολύ κρυμένο... Δεν υπάρχει λόγος να χρησιμοποιούμαι VBA για evaluate! Γίνεται με συνάρτηση του Excel κρυμμένη από το Excel, αλλά υπαρκτή στο RefersTo στα Named Ranges... κουφάθηκα όταν το είδα και διαπίστωσα ότι δουλεύει... λεπτομέρειες και εδώ.
  11. @cvlengnr από την στιγμή που θες να αντιστοιχίσεις τα δεδομένα, η Index σου κάνει μια χαρά. Δηλαδή και A1:A1000 να πάρεις, με τα δεδομένα σου να αρχίζουν από Α40, απλά πρόσθεσε το 40 στο Index: =index(A$1:A$1000;40-(row()-row(B$10))). Και η Offset σου κάνει: =Offset(A$1;40+(row()*row(C$10));0), αλλά τα είπαμε για τις volatile functions... Τώρα αν δεν ξέρεις που αρχίζει, ψάξε με Match(value;$A$1:$A$1000;0) να το βρεις, και βάλε το αποτέλεσμα στη θέση του 40.... Αν τα δεδομένα σου είναι ταξινομημένα, προτίμησε Match(value;$A$1:$A$1000; {1 ή -1} ) για πολύ πιο γρήγορη αναζήτηση. (δες βοήθεια για Match για λεπτομέρειες)... Cheers
  12. Καλημέρα και καλή χρονιά! στο προκείμενο τώρα, μία επιλογή είναι η χρήση της INDEX() ή της OFFSET(), πχ έχεις Β1=κ, Β2=ν , Β3=i και θες να ξεκινάς από Αi (i=B3), τότε γράφεις: =index(A$24:A$1000;$B$3-(row()-z)) όπου z=ROW(γραμμή 1ης εντολής +F4), δηλαδή για τοποθέτηση της συνάρτησης από το B10 και κάτω, γράφεις: =index(A$24:A$1000;$B$3-(row()-row(B$10))) ...έτσι στο Β10 θα επιστρέφει το Α(24+i), στο Β11 το A(24+i+1) .... φυσικά μπορείς να χρησιμοποιήσεις και την OFFSET, με τελική εγγραφή στο C10: =Offset(A$24;$B$3+(row()*row(C$10));0) πρόσεξε ότι η OFFSET δεν περιορίζεται από τα υπάρχοντα δεδομένα και ότι είναι volatile, το οποίο σημαίνει ότι υπολογίζεται με οποιαδήποτε αλλαγή στο excel, και όχι μόνο τις σχετικές με τη συνάρτηση αλλαγές, το οποίο μπορεί να οδηγήσει σε αργά φύλλα και χρονοβόρους υπολογισμούς. επίσης δες ότι έχω γράψει Α$24:Α$1000, το 1000 μπορεί να είναι ότι σε βολεύει. Μπορεί να είναι και offset(A$24;;;$B$1+$B$2) (δηλαδή Α(24 ως 24+κ+ν)) αλλά καλύτερα να βάλεις κάτι ...μεγάλο και να αποφύγεις την offset! Μην κάνετε παράθεση του αμέσως προηγούμενου μηνύματος για λόγους οικονομίας του φόρουμ. Διαβάστε τους κανόνες συμμετοχής. Γιάννης
  13. μια απλή και μη "volatile" συνάρτηση: =INDEX(B2:L2;COUNT(B2:L2))-INDEX(B2:L2;COUNT(B2:L2)-1) εκτός της απλότητας και επεκτασιμότητας έχει το πλεονέκτημα ότι δεν είναι "volatile" με άμεση επίπτωση στη ταχύτητα της σελίδας μας, ειδικά σε μεγάλα φύλλα...
  14. Φίλε μου έτσι αν έχεις πολλά μηδενικα... την πάτησες St2 το COUNTIF(E1:E10;"<0") τι το θες? γιατί βγάζεις τα αρνητικά? εγώ πάντως θα πήγαινα με λύση της μορφής: =MIN(IF(A1:A11=0;100000000;A1:A11)) +ctrl-shift-enter (άρα {=MIN(IF(A1:A11=0;100000000;A1:A11))} ) Επίσης από το Καλύτερο forum για ερωτήσεις-απαντήσεις στο Excel είναι της "μαμάς" εκεί γράφουν πολλοί προγραμματιστές και χομπίστες και αναλαμβάνουν να βοηθήσουν "δωρεάν" ακόμα και για δύσκολα ερωτήματα... (που κατά τη γνώμη μου θα έπρεπε να είχαν απευθυνθεί σε επαγγελματία). Δεν ξέρω αν υπάρχει ελληνική έκδοση, μιλάω για την αγγλική.
  15. Πιστεύω πως καλά θα ήταν να αναφέρεται ότι πρόκειται για το ΦΕΚ 79 τευχος Α είναι όπως υπάρχει δωρεαν στο ΕΤ ...
  16. If InStr(b, ">") > 0 Then EvalFL = True If InStr(b, "<") > 0 Then EvalFL = True την ανισότητα δεν την χρειαζόμαστε και θα την βγάλω σε επόμενη έκδοση, καθώς μπορούμε να στείλουμε πίνακα με TRUE/FALSE τιμές: πχ =getif(C27:C40*7<50;TRUE;;14) θα επιστρέψει τις θέσεις (σχετικές) των δεδομένων που επαληθεύουν τα υπογραμμισμένα... όποιος έχει ιδέες για βελτίωση ή ανακαλύπτει χρήσεις νέες, μην διστάζετε να τα στέλνετε...
  17. Θέμα με Sum/Count κλπ όταν προστίθεται γραμμή/στήλη ανάμεσα στο αποτέλεσμα και την πράξη και ...παραμένει εκτός πράξης Λύση: έστω ότι στο κελί B31 θέλουμε να προσθέσουμε τα κελιά Β5 ως Β30, αντι για το εύκολο και γνωστό =sum(B5:B30) γράφουμε =Sum(B5:offset(B31;-1;0) και ιδού... τώρα προσθέτωντας γραμμές ακριβώς πάνω από το άθροισμα (ή και οπουδήποτε μέσα) το άθροισμα παραμένει σωστό...
  18. Φίλοι και συνάδελφοι, χαίρετε!!! Εδώ και καιρό εργάζομαι σε μια νέα έκδοση που όλα θα είναι πιο εύκολα. Πρόκειται για λειτουργικές αλλαγές, στον τρόπο εισαγωγής και διαχείρισης των δεδομένων μας. Απ' όσο γνωρίζω δεν έχει αλλάξει κάτι με το αρχείο του ΙΚΑ. Δεν μπορώ να υποσχεθώ κάτι γιατί ενώ ξεκίνησα με ένα αρχικό πλάνο όλο ξεπετάγονται νέες ιδέες... Επίσης, όπως πάντα, ο κώδικας θα είναι ανοιχτός και ελεύθερος, ώστε να μπορείτε να διορθώσετε άμεσα τυχόν σφάλματα και να δοκιμάζετε αλλαγές, ή ακόμα και να πάρετε κομμάτια για τα δικά σας προγράμματα. Μην διστάζετε να ρωτάτε και να προτείνετε, ή να ενημερώνετε με νέα από το ΙΚΑ. (όποιος δεν έχει άμεση ανάγκη το πρόγραμμα ας περιμένει λίγο για το καινούργιο, θα γλιτώσει πολύ χρόνο/διάβασμα. Βέβαια ότι μερικοί χειρισμοί εφαρμόζονται και σε δικά σας excel-ακια, οπότε επιλέξτε ότι αγαπάτε) Επανέρχομαι σύντομα...
  19. Βάζω τον κώδικα εδώ για να αποφύγουν οι συνάδελφοι και φίλοι το download/insert module κλπ. και να κάνουν τις δοκιμές τους πιο εύκολα. Δυο παρακλήσεις ωστόσο: 1) Διαβάστε τα αρχικά σχόλια και τη περιγραφή πριν από ερωτήσεις, και αν κάτι δεν σας τρέχει κάντε download και δείτε τις εφαρμογές που έχω στο excel 2) Κατά την αντιγραφή του κώδικα μην σβήσετε τίποτα (πληροφορίες/στοιχεία κλπ) ούτε από τα σχόλια. Το διαθέτω τελείως ελεύθερο προς χρήση και μεταβολή αλλά με την υποχρέωση να διατηρείτε και να ενημερώνετε με τις αλλαγές σας τα σχόλια (edit_4 κλπ) με τα στοιχεία σας. Καλό είναι να ξέρουμε ποιος κάνει τι... ακολουθεί ο κώδικας: ' EDIT_3 (Jun 2012): Few MAJOR changes. ' Added "Optional ArraySize As Long = 1" ' now: a = range to look into for match (could be range/ranges/array/name) ' b = lime to look for OR lime with comparison elements (ex: >=2) ' c Optional: If c exists then GetIf will return items from c (range/array...) where b matches a ' if c is missing then GetIf returns the indexes of matches found ' ArraySize Optional: Default = 1 : return 1 result ' special = -1 : find quantity of matches through CountIF and return so many results ' normal 1 to...: find as many as exist in an array as big as Asked! ' When covering an array of N elements with GetIf it is especially useful to send an ' Arraysize of N since it will return 0 elemements in empty slots while (-1) or a ' smaller number will return #N/A in empty slots. ' GetIf will always return a Vertical Array of elements according to ArraSize {getif(N,1)}. Can be used normaly ' for one result (default) without Array experience. Use Traspose() of Excel to convert to Horizontal ' ex: transpose( GetIf(N,1) ) = GetIf(1,N) ' ' TIPS: Use with excel formulas: Offset(),Index(),Smaller(),Larger(),Rows(1:N),Columns(1:N) for unlimited usage. ' See examples ' ' Goylandris Apostolos ' ' EDIT_2 (Jun 2012): c (range2) made Optional. If c is missing then return ' the Counter found so that range1(Counter)=b, then use Counter with Offset function!!! ' GoRandom has gone bye bye... complicated things ' ' Goylandris Apostolos ' ' EDIT_1 ' H Optional-> GoRandom proste8hke gia tyxaio gemisma pinaka - mperdema, sto IKA ' to b egine b as string ka8ws se merikes periptwseis den edeine ta anamenomena. Pleon doyleyei kalytera ' ' Goylandris Apostolos ' ' Original (Apr 2008) ' Syntax exactly like SUMIF, that is "GetIf (Range1;Criteria;Range2)" ' and finds range2(i) so that range1(i)=criteria ' No controls/checks, no speed or other improvements made by function ' ' Goylandris Apostolos ' Public Function GetIf(a, b As String, Optional c, Optional ArraySize As Long = 1) Dim Counter As Long, Counter2 As Long, Counter3 As Long, dum1, EvalFL As Boolean, matchFL As Boolean Dim Counters() As Long, Holder() ' Fix ArraySize If ArraySize = 0 Then ArraySize = Evaluate(Application.WorksheetFunction.CountIf(a, ) If ArraySize < 1 Then ArraySize = 1 ' Restore to 1 even if evaluate finds 0 to avoid errors ' properly allocate arrays for VERTICAL results. Use TRANSPOSE() in excel fo HORIZONTAL ReDim Counters(1 To ArraySize, 1 To 1), Holder(1 To ArraySize, 1 To 1) ' Enable trapping for Greater than or Smaller than functions If InStr(b, ">") > 0 Then EvalFL = True If InStr(b, "<") > 0 Then EvalFL = True Counter = 0: Counter2 = 0: Counter3 = 0 For Each dum1 In a ' Search for index Counter = Counter + 1: matchFL = False If EvalFL Then If Evaluate(Format(dum1, "#0") + Then matchFL = True Else If b = Trim(dum1) Then matchFL = True End If If matchFL Then Counter3 = Counter3 + 1 Counters(Counter3, 1) = Counter If Counter3 = ArraySize Then Exit For 'Search only as many as asked for End If Next If Counter3 > 0 Then ' if something was found If IsMissing(c) Then ' Edit:Jun2012 Ommitting range2 (c) returns Position within range GetIf = Counters Else Counter = 1 For Each dum1 In c ' Use index to find equivalent Counter2 = Counter2 + 1 If Counter2 = Counters(Counter, 1) Then Holder(Counter, 1) = dum1 Counter = Counter + 1 If Counter > Counter3 Then Exit For 'Search only as many as asked for End If Next GetIf = Holder End If Else GetIf = "-": End If End Function
  20. καλησπέρα, προτείνω και εγώ μια πιο κομψή λύση, χωρίς χρήση της αγαπημένης μου VBA αλλά με "πίνακες": =SMALL(IF({1,5;2,5;4;6}-F3>=0;{1,5;2,5;4;6};10);1) εισαγωγή με ctrl+shift+enter όπου στο κελί F3 έχω την τιμή προς σύγκριση. Το 10 μπορεί να είναι οτιδήποτε θες να σου βγάζει όταν είσαι πάνω από το τελευταίο (εδώ το 6) όπως καταλαβαίνετε βάζω τις τιμές σε array: {1,5;2,5;4;6}. Εδώ θα μπορούσαμε να έχουμε ονομασία (defined name) έστω oria={1,5;2,5;4;6} ή από κελιά, και να γράφαμε: =SMALL(IF(oria-F3>=0;oria;10);1) κλπ... πολύ πιο κομψό!! εδώ για παράδειγμα εισαγωγής ονομασμένης λίστας και data validation Η παραπάνω εντολή για να δουλέψει θέλει αφού γραφτεί να πατηθεί το ctrl+shift+enter αντί του απλού enter!!! Το ίδιο μετά από κάθε αλλαγή της.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.