Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] Ενεργή συμμετοχή ... (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/368-energi-symmetoxi.html)

gr8styl 03-02-10 20:37

Ενεργή συμμετοχή ...
 
Αγαπητοί φίλοι και φίλες
άνοιξα το θέμα αυτό με σκοπό να συγκεντρώσουμε έξυπνες και χρήσιμες συναρτήσεις.
Έτσι οι διαχειριστές του ms-office.gr θα μπορέσουν να κάνουν επιλογή των πλέον χρήσιμων και να τις ανεβάσουν στα Tricks and tips του Excel.

Βάλτε λοιπόν σε αυτό το θέμα τις ανακαλύψεις/συναρτήσεις Excel που θέλετε να μοιραστείτε με άλλους.

Μην ξεχάσετε να περιγράψετε το τι κάνει. :police:

Θανάσης
ΥΓ Θέλω να πιστεύω ότι θα βρει ανταπόκριση το θέμα. :001_rolleyes:

gr8styl 03-02-10 20:40

Ταξινόμηση αριθμών με χρήση συνάρτησης
 
Να μια συνάρτηση αρκετά χρήσιμη κατά τη γνώμη μου

Όταν θέλουμε να ταξινομήσουμε μια στήλη που περιέχει αριθμούς χωρίς να χρησιμοποιήσουμε τα μενού του Excel ή κώδικα VBA αλλά με χρήση συνάρτησης, τότε:

Σε μια νέα στήλη στη γραμμή 1 βάζουμε τον τύπο

=IF(ISERROR(SMALL(d:d;ROW()));"";SMALL(d:d;ROW()))

και τον σέρνουμε προς τα κάτω όσο χρειάζεται.

Σημ.: το d στον τύπο είναι η στήλη που περιέχει τους αριθμούς προς ταξινόμηση

ΠΡΟΣΟΧΗ: Αν υπάρχει κείμενο ή κενά στην προς ταξινόμηση στήλη αγνοούνται !!!

Tasos 05-02-10 11:31

Excel - Ημερολόγιο
 
Excel - Ημερολόγιο στα πεταχτά...

Πώς φτιάχνουμε σε ένα φύλλο Excel, ένα ημερολόγιο με μήνες, ημέρες και με σήμανση
στα Σαββατοκύριακα;

Στο κελί A1 πληκτρολογούμε το έτος πχ. 2010

Επικολλούμε τον παρακάτω τύπο στο κελί A2:

Κώδικας:

=IF(MONTH(DATE($A$1;COLUMN();ROW()-1))=COLUMN();DATE($A$1;COLUMN();ROW()-1);"")
Στο κελί A2 χρησιμοποιούμε μορφοποίηση υπό όρους στην οποία προσθέτουμε τον παρακάτω τύπο:

Κώδικας:

=WEEKDAY(A2;2)>5
και δίνουμε το χρώμα φόντου που επιθυμούμε.

Αντιγράφουμε το κελί Α2 με CTRL+C

Επιλέγουμε την περιοχή A2:L32 και επικολλούμε με CTRL+V

Τάσος

nisgia 06-02-10 22:06

Επαλήθευση επικύρωση ΑΦΜ
 
1 Συνημμένο(α)
Καλησπέρα στην ομάδα!

Μπράβο Θανάση !!!
Πολύ καλή η ιδέα σου!:045:
(ή για να ακριβολογώ, η υλοποίησή της...:biggrin:)

Ορίστε ένας ακόμη τύπος ο οποίος ελέγχει την εγκυρότητα ενός Α.Φ.Μ.
και πιστεύω πως θα φανεί χρήσιμος σε όσους μαζεύουν αποδείξεις λιανικής
και χρησιμοποιούν το Excel για την καταχώρησή τους.:cool:

Κώδικας:

=IF(G5<>"";IF(AND(NOT(ISERROR(--G5));LEN(G5)=9);
IF(MOD(MOD(SUM(MID(G5;9-{1;2;3;4;5;6;7;8};1)*(2^{1;2;3;4;5;6;7;8}));11);10)=--RIGHT(G5;1);
"Έγκυρος Α.Φ.Μ.";"Μη έγκυρος Α.Φ.Μ.");"Λάθος καταχώρηση!");"")

Αντιγράψτε τον και επικολλήστε τον κατευθείαν στη γραμμή τύπου διότι περιέχει αλλαγές γραμμής.

Η μορφή του κελιού ελέγχου (όπου θα εισαχθεί ο Α.Φ.Μ.) θα πρέπει να έχει τεθεί σε τύπο "Κείμενο"
έτσι ώστε να δέχεται τα πιθανά αρχικά μηδενικά ενός Α.Φ.Μ.

Στο συνημμένο αρχείο θα βρείτε ένα παράδειγμα χρήσης του τύπου καθώς και την ανάλυση/επεξήγησή του.

Έτσι, για να βοηθήσουμε και εμείς λίγο στη προσπάθεια πάταξης της φοροδιαφυγής...!:015:

Φιλικά,
Γιάννης

gr8styl 07-02-10 12:16

Επαλήθευση επικύρωση ΑΦΜ (με λάθη)
 
Παράθεση:

Αρχική Δημοσίευση από nisgia (Μήνυμα 1448)
...
Ορίστε ένας ακόμη τύπος ο οποίος ελέγχει την εγκυρότητα ενός Α.Φ.Μ.
και πιστεύω πως θα φανεί χρήσιμος σε όσους μαζεύουν αποδείξεις λιανικής
και χρησιμοποιούν το Excel για την καταχώρησή τους.:cool:
Κώδικας:

=IF(G5<>"";IF(AND(NOT(ISERROR(--G5));LEN(G5)=9);
IF(MOD(MOD(SUM(MID(G5;9-{1;2;3;4;5;6;7;8};1)*(2^{1;2;3;4;5;6;7;8}));11);10)=--RIGHT(G5;1);
"Έγκυρος Α.Φ.Μ.";"Μη έγκυρος Α.Φ.Μ.");"Λάθος καταχώρηση!");"")

...

Μπράβο Γιάννη πολύ καλό :thumbup1:
έτσι για ανταπόδοση των "compliments" :lol:

Αν μου επιτρέπεις το MOD(....;10) δεν χρειάζεται αφου έχεις --RIGHT(G5;1)
και αν θέλουμε να μικρύνει ακόμα περισσότερο θα έλεγα ούτε το NOT :closedeyes:

Τι λες για αυτόν (τα κελιά που περιέχουν τον ΑΦΜ είναι κείμενο όπως προείπες)
Κώδικας:

=IF(M5<>"";IF(OR(ISERROR(--M5);LEN(M5)<>9);"Λάθος καταχώρηση!";
IF(MOD(SUM(MID(M5;9-{1;2;3;4;5;6;7;8};1)*(2^{1;2;3;4;5;6;7;8}));11)=--RIGHT(M5;1);
"Έγκυρος Α.Φ.Μ.";"Μη έγκυρος Α.Φ.Μ."));"")

Κερδίζουμε 6 bytes ανά κελί που περιέχει τον τύπο στο τελικό αποθηκευμένο βιβλίο :wink:

ή αν τα κελιά που περιέχουν τον ΑΦΜ δεν είναι απαραίτητα κείμενο, θα έλεγα
Κώδικας:

=IF(M6<>"";IF(OR(ISERROR(--M6);LEN(M6)>9);"Λάθος καταχώρηση!";
IF(MOD(SUM(MID(RIGHT(REPT("0";9)&M6;9);9-{1;2;3;4;5;6;7;8};1)*(2^{1;2;3;4;5;6;7;8}));11)=--RIGHT(M6;1);
"Έγκυρος Α.Φ.Μ.";"Μη έγκυρος Α.Φ.Μ."));"")

όπου το κέρδος είναι όμως μόνον 1 byte ανά κελί που περιέχει τον τύπο (παρά του ότι ο τύπος είναι μακρύτερος).
Όλα για το κέρδος γιατί έρχονται δύσκολες μέρες :lol:

Τα λέμε
Θανάσης
ΥΓ Οι μετρήσεις έγιναν με Excel 2002 Ελληνικό :001_cool:

Tasos 08-02-10 10:26

Επαλήθευση επικύρωση ΑΦΜ (με λάθη)
 
Καλημέρα σε όλους!

Δείτε το και με τύπο πίνακα:

Δεν είχα περιθώρια να ελέγξω τον τύπο με περισσότερα ΑΦΜ αλλά τουλάχιστον κάνει το ίδιο που κάνουν και οι υπόλοιποι τύποι στο θέμα αυτό.

Κώδικας:

{=IF(A1<>"";IF(LEN(A1)=9;IF(MOD(SUM(MID(A1;9-ROW($1:$8);1)*2^ROW($1:$8));11)=RIGHT(A1;1)*1;"ΟΚ!";"Άκυρο!")
;"Λάθος καταχώρηση!");"")} Προσοχή! Τύπος Πίνακα (CSE)



Τα λέμε..

Τάσος

Θανάσης 08-02-10 16:57

Εύρεση τριμήνου από ημερομηνία
 
Καλησπέρα σας
να μπώ και εγώ σφήνα στους ειδικούς με μια συνάρτηση που με είχε ταλαιπωρήσει για καιρό και κατάφερα να βρώ μόνος μου. :dft001:

Εύρεση τριμήνου από ημερομηνία

αν έχουμε μια ημερομηνία στο κελί Α1 πχ 8/2/2010 τότε ο τύπος:

=ROUND((MONTH(A1)+1)/3;0)&"ο τρίμηνο"

μας δίνει το τρίμηνο δηλαδή "1ο τρίμηνο" για το παράδειμα.

Θανάσης
ΥΓ. Μπράβο παιδιά πολύ χρήσιμο αυτό με τον ΑΦΜ :045:

nisgia 08-02-10 21:31

Επαλήθευση επικύρωση ΑΦΜ
 
Καλησπέρα!
Παράθεση:

Αρχική Δημοσίευση από gr8styl (Μήνυμα 1461)
Αν μου επιτρέπεις το MOD(....;10) δεν χρειάζεται αφου έχεις --RIGHT(G5;1)

Δυστυχώς φίλοι μου η MOD(....;10) είναι απαραίτητη στην περίπτωση που η MOD(....;11) επιστρέφει 10
και αυτό σίγουρα δεν ισούται με το τελευταίο ψηφίο του Α.Φ.Μ.

Επίσης ο έλεγχος ISERROR(--G5) είχε μπει για απόκρυψη της τιμής σφάλματος #VALUE!
έτσι ώστε να είναι πιο φιλική προς το χρήστη η "φόρμα" εισαγωγής.:001_cool:

Όσο για την αυτόματη συμπλήρωση Θανάση, νομίζω πως είναι λίγο επισφαλής διαδικασία.
Καλλίτερα την ευθύνη των όσων εισάγονται να την έχει ο χρήστης.

Οπότε μάλλον η πιο συντομευμένη έκδοση είναι αυτή του Τάσου η οποία γλιτώνει αρκετούς χαρακτήρες
από τους σταθερούς πίνακες με τη χρήση της ROW().
Αρκεί να προστεθεί και η MOD(....;10) για σωστά αποτελέσματα αλλά και προαιρετικά η ISERROR(--G5).:thumbup1:

nisgia 08-02-10 21:43

Εύρεση τριμήνου ή εξαμήνου από ημερομηνία
 
Παράθεση:

Αρχική Δημοσίευση από Θανάσης (Μήνυμα 1484)
Καλησπέρα σας
να μπώ και εγώ σφήνα στους ειδικούς...

Καλησπέρα Θανάση!
Φυσικά να μπεις και εσύ! Χωράει πολλούς καλούς αυτό το φόρουμ!:021:

Πολύ χρήσιμος ο τύπος σου και μάλιστα μπορούμε να αντικαταστήσουμε την ROUND() με την INT() όπως παρακάτω:
Φαντάζομαι θα είναι πιο γρήγορη από την ROUND...:001_unsure:

=INT((MONTH(A1)-1)/3)+1

Φυσικά στο ίδιο μοτίβο λειτουργούμε και για εξάμηνα κτλ.

=INT((MONTH(Α1)-1)/6)+1

Φιλικά,
Γιάννης
:hammer-smilies-0003

nisgia 08-02-10 22:00

Αναζήτηση της πλησιέστερης τιμής
 
Τώρα με τις περικοπές και τα σκληρά μέτρα λιτότητας:cry:, πιθανώς να μας φανεί χρήσιμος
και ο παρακάτω τύπος ο οποίος επιστρέφει την πλησιέστερη τιμή σε μια τιμή στόχο από μια περιοχή τιμών μιας στήλης.
Έτσι, για να βρίσκουμε τα πιο κοντινά στις οικονομικές μας δυνατότητες προϊόντα.:008:

Κώδικας:

=INDEX($A$1:$A$10;MATCH(MIN(INDEX(ABS($A$1:$A$10-C1);));INDEX(ABS($A$1:$A$10-C1););0))
Όπου $A$1:$A$10 η περιοχή αναζήτησης και C1 η τιμή στόχος.
Φυσικά η περιοχή αναζήτησης της εξωτερικής INDEX() μπορεί να είναι διαφορετική από τις άλλες δύο.

Δοκιμάστε τον. :dft009:

Υ.Γ.
Κάτι μου λέει πως το θέμα θα μετονομαστεί σε: Αγαπάς το Excel; Απόδειξη!!! :011:

Tasos 08-02-10 23:53

Επαλήθευση επικύρωση ΑΦΜ (με λάθη)
 
Καλησπέρα Γιάννη μου.

Παράθεση:

Αρχική Δημοσίευση από nisgia (Μήνυμα 1498)
Αρκεί να προστεθεί και η MOD(....;10) για σωστά αποτελέσματα αλλά και προαιρετικά η ISERROR(--G5).:thumbup1:

Είναι έτσι εντάξει;
Κώδικας:

{=IF(A1<>"";IF(LEN(A1)=9;IF(MOD(MOD(SUM(MID(A1;9-ROW($1:$8);1)*2^ROW($1:$8))*1;10)=RIGHT(A1;1)*1;10);"ΟΚ!";
"Άκυρο!");"Λάθος καταχώρηση!");"")}

Τη συνάρτηση αυτή δεν κατόρθωσα να την κάνω να μου εμφανίσει #VALUE! .:blush:

Τάσος

nisgia 09-02-10 00:32

Επαλήθευση επικύρωση ΑΦΜ (τύπος πίνακα)
 
Όχι Τάσο! Το σωστό είναι έτσι: "MOD(MOD(Άθροισμα;11);10)"
Κώδικας:

=IF(A1<>"";IF(LEN(A1)=9;IF(MOD(MOD(SUM(MID(A1;9-ROW($1:$8);1)*2^ROW($1:$8));11);10)=RIGHT(A1;1)*1;"ΟΚ!";
"Άκυρο!");"Λάθος καταχώρηση!");"")

Μην ξεχνάτε, είναι τύπος πίνακα CSE. Εισάγεται με Ctrl+Shift+Enter.

Αν θέλεις τσεκάρισε τους Α.Φ.Μ. ΕΔΩ.
Για παράδειγμα ο "090000010" είναι έγκυρος ενώ ο "090000020" όχι.

Η τιμή #VALUE! βγαίνει όταν υπάρχει μη αριθμητικός χαρακτήρας μέσα στον Α.Φ.Μ.
Για παράδειγμα ένα κεφαλαίο όμικρον (Ο) αντί για μηδέν (0). :grin:
Μοιάζουνε κιόλας τα σκασμένα!:laugh:

gr8styl 09-02-10 00:36

Επαλήθευση επικύρωση ΑΦΜ
 
Παράθεση:

Αρχική Δημοσίευση από nisgia (Μήνυμα 1498)
Δυστυχώς φίλοι μου η MOD(....;10) είναι απαραίτητη στην περίπτωση που η MOD(....;11) επιστρέφει 10
και αυτό σίγουρα δεν ισούται με το τελευταίο ψηφίο του Α.Φ.Μ.

Πολύ σωστά Γιάννη
το MOD(...;10) είναι αναγκαίο.
Μπερδεύτικα με την RIGHT(..;1) που παίρνει μόνο το τελευταίο ψηφίο, του ΑΦΜ όμως και όχι του αποτελέσματος της MOD(..;11)

Θα συμφωνήσω ακόμα ότι η πρόταση του Τάσου με χρήση συνάρτησης πίνακα είναι η οικονομικότερη. Μάλλον εγώ τον παρέσυρα και παρέλειψε και αυτός το MOD(...;10)

Συγνώμη για το μπέρδεμα. :dft004:

Θανάσης
ΥΓ. Το έχω πει ότι μου αρέσουν οι παρατηρήσεις διορθώνομαι :hammer-smilies-0001

nisgia 09-02-10 00:42

Δεκτή η συγγνώμη σου Θανάση αλλά η EXELιξη έτσι είναι. Try and error! :hammer-smilies-0002
...Χρόνια τώρα!:021:

Tasos 09-02-10 01:26

:007: Έχεις δίκιο! Έτσι την έχω κι εγώ αλλά απλά επικόλλησα λάθος συνάρτηση!
Δεν βγάζει όμως σε καμία περιπτωση #VALUE!.:blush:

gr8styl 18-02-10 23:24

Επικύρωση δεδομένων
 
Δεν πρόκειται για συνάρτηση αλλά για ένα πολύ χρήσιμο κατά την γνώμη μου κόλπο.:wink:

Θα έχετε διαπιστώσει ίσως ότι όταν το κελί που θέλουμε να εφαρμόσουμε Επικύρωση δεν βρίσκεται στο ίδιο φύλλο με την λίστα που θέλουμε, το Excel (τουλάχιστον μέχρι την έκδοση 2003) δεν το δέχεται. :sad:
Η λύση βρίσκεται στο να ορίσουμε κάποιο όνομα για την επιθυμητή λίστα και να εισάγουμε το όνομα αντί της διεύθυνσης της περιοχής.

Παράδειγμα:
Αν στο φύλλο1 η περιοχή a1 έως a5 έχει ονόματα φρούτων, και θέλουμε να μπορούμε να επιλέγουμε ένα από αυτά στο κελί a1 του φύλλο2, εργαζόμαστε ως εξής:
Στο Φύλλο1 επιλέγουμε την περιοχή από a1 έως a5 και στο μενού Εισαγωγή Όνομα Ορισμός γράφουμε frouta Αναφορά σε: δείχνει "=Φύλλο1!$A$1:$A$5").
Πάμε στο Φύλλο2 και επιλέγουμε το κελί a1 στο μενού Δεδομένα Επικύρωση επιλέγουμε Επιτρεπόμενη καταχώρηση "Λίστα" και στο Προέλευση γράφουμε =frouta

Ελπίζω να σας φανεί χρήσιμο.
Γενικότερα η χρήση ονομάτων στο Excel είναι κάτι σαν ορισμός μεταβλητών.:icon_superman:
Θανάσης

ΥΓ. Στο Excel 2007 μπορούμε γράψουμε κατευθείαν =Φύλλο1!$a$1:$a$5 στο Προέλευση, αλλά δεν μπορούμε να επιλέξουμε με το ποντίκι την περιοχή. :023:

gr8styl 27-02-10 00:33

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

Παράδειγμα: το "Τιμή_1" είναι διαφορετικό από το "τιμή_1" ή το "ΤΙΜΗ_1"

Αν υποθέσω ότι τα δύο προς σύγκριση κελιά είναι το Α1 και το Β1 τότε η απάντηση είναι ο τύπος:

Κώδικας:

=IF(OR(ISERROR(FIND(A1;LEFT(B1;LEN(A1))));ISERROR(FIND(B1;LEFT(A1;LEN(B1)))));"Α1≠Β1";"Α1=Β1")
Συχνά μας διευκολύνει να προκύπτει ισότητα μεταξύ κεφαλαίων και πεζών χαρακτήρων όχι όμως πάντα.
Εσείς αποφασίζεται αν είναι χρήσιμο και πότε χρειάζεται η διαφοροποίηση.

Τώρα ξέρετε τον τρόπο :wink:

Θανάσης

nisgia 05-03-10 00:44

Απόλυτη σύγκριση τιμών κειμένου
 
Θανάση, δεν κατάλαβα σωστά ή ο παρακάτω τύπος είναι ισοδύναμος με τον τύπο που μας έδωσες; :unsure:

Κώδικας:

=IF(EXACT(A1;B1);"Α1=Β1";"Α1≠Β1")

gr8styl 05-03-10 08:25

Καλημέρα.

φίλε Γιάννη εσύ πολύ σωστά κατάλαβες. Τώρα όσο για μένα, εγώ έμαθα την ύπαρξη της EXACT που αγνοούσα μέχρι σήμερα !!! :newpaper:

Ευχαριστώ.

ΥΓ. Να που πάντα υπάρχει κατι που δεν ξέρουμε και μαθαίνουμε. Το να το θυμόμαστε βέβαια είναι άλλο κεφάλαιο. :wink:


Η ώρα είναι 22:02.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2