Μετάβαση στο περιεχόμενο
Newsletter: Ημερήσια τεχνική ενημέρωση από το Michanikos.gr ×

Excel - απορίες, βοήθεια επί του προγράμματος


GeorgeS

Recommended Posts

Και μια άλλη άσχετη απορία:

Θέλω να γράψω μια συνάρτηση στην οποία να έχει πολλά if, και δυστυχώς με τη nested if έχω περιορισμό στα 7 if.

...

Και θέλω να κάνω κάτι σαν κενό κελί = if(A1 = 1;"Ω";if(A1=2;X";"") αλλά έχω πολλά if.

Μην ανησυχείς! Πρόκειται για κλασική περίπτωση βλάβης... εεε...

αναζήτησης και αναφοράς ήθελα να πω!

 

Η λύση είναι απλή:

 

Δημιουργείς έναν πίνακα με δυο στήλες και ισάριθμες με τις πιθανές τιμές σειρές

όπου θα αντιστοιχίσεις τις τιμές με τα γράμματα.

 

Για παράδειγμα:

1 Ω

2 Χ

3 Ψ

...

κοκ

 

Μετά, στο κενό κελί εισάγεις τον τύπο: =VLOOKUP(a1;Table;2;0)

και τον συμπληρώνεις προς τα κάτω.

 

Όπου Table η διεύθυνση ή το όνομα του πίνακα αντιστοίχισης.

Ίσως να χρειαστείς και μια IF() σε περίπτωση που ο πίνακας δεν περιλαμβάνει

όλες τις πιθανές τιμές, έτσι ώστε να αντιμετωπίσεις το σφάλμα #Δ/Υ.

 

Καλή τύχη:smile:

 

Υ.Γ.

Αν είναι λίγες οι πιθανές τιμές, ίσως σε βολέψει και η συνάρτηση CHOOSE().

Για παράδειγμα: =CHOOSE(a1;"Ω";"Χ";"Ψ";"Ζ")

  • Upvote 1
Link to comment
Share on other sites

Σωστός ο John_John.

Στο excel και το μέγεθος και η ταχύτητα μετράνε...

enter the matrix :)

 

Επειδή χρησιμοποιώ open office, στο excel η round έχω την εντύπωση πως απαιτεί το μηδέν στο τέλος. Round(Τιμή;0) οπότε στο επόμενο παράδειγμα την έβγαλα εκτός.

 

Για εξήγησε λίγο σε παρακαλώ την σύνταξη. Πχ, αν έχω τα εξής δεδομένα στα κελιά Α1 έως D5:

1 2 3 4 7

3 5 4 6 9

5 3 1 2 0

7 8 6 4 3

Πως θα πρέπει να συντάξω την εντολή που παρέθεσες ώστε να μου βγει μια στήλη με τα 20 αυτά στοιχεία?

 

Ευχαριστώ εκ των προτέρων... :wink:

 

 

Samdreamth η εντολή που έδωσα ήταν για το συγκεκριμένο παράδειγμα.

Τώρα Αν έχουμε [Ν] γραμμές ο τύπος θα έπρεπε να γίνει:

>
=INDIRECT(ADDRESS([Ν]*((ROW()-1)/[Ν]-INT((ROW()-1)/[Ν]))+1;INT((ROW()-1)/[Ν]);1))

και να ξεκινάει στην [Ν]+1 γραμμή.

Link to comment
Share on other sites

Για το πρώτο σκέλος

Νομιζω οτι γίνεται πολύ απλά .Γράφεις τον πίνακα όπως τον θες ,τον επιλέγεις (μαρκάρεις) και πατάς Εισαγωγή-->όνομα--> ορισμός

και βάζεις το όνομα που θες (στο παράδειγμα matrix)

 

Ζάχο, πολύ καλό αυτό με τον ορισμό του πίνακα. Ομολογώ ότι δεν το ήξερα αλλά με βοήθησε για να κάνω αυτό που περιέγραψε ο John John παρακάτω. Ευχαριστώ!

 

Μετά, στο κενό κελί εισάγεις τον τύπο: =VLOOKUP(a1;Table;2;0)

και τον συμπληρώνεις προς τα κάτω.

 

John John: Δούλεψε μια χαρά!!! Το έκανα μάλιστα εις τετραπλούν, ώστε πχ αναλόγως του Α1 να συμπληρώνονται αυτόματα και τα κελιά B1, C1, D1 και Ε1. Η VLOOKUP νομίζω ότι θα μου φανεί αρκετά χρήσιμη στο μέλλον. Ευχαριστώ!

 

η ευκολότερη λύση με μία μόνο γραμμή κώδικα (καθαρού excel) είναι:

 

Στο κελί Α3 γράφεις:

>=INDIRECT(ADDRESS(ROUND(INT(ROW()/2)-ROW()/2)+2;ROUND(ROW()/2)-1;1))

και τραβάς προς τα κάτω.

 

Μετά κάνεις copy μόνο τις τιμές σε ένα άλλο φύλλο και όλα οκ.

 

Gousgouni, όντως θέλει και το δεκαδικό γιατί διαφορετικά ΔΕΝ δουλεύει (τουλάχιστον σε μένα). Στην περίπτωση μου λοιπόν, δούλεψε πληκτρολογώντας την εξής εντολή:

>=INDIRECT(ADDRESS(ROUND(INT(ROW()/2)-ROW()/2;0)+2;ROUND(ROW()/2;0)-1;1))

Πάντως Gousgouni φοβερή ιδέα με μια μόνο γραμμή! Εύγε!

 

Σας ευχαριστώ πολύ όλους για την βοήθειά σας... ;)

Link to comment
Share on other sites

  • 3 weeks later...

Γεια σας και πάλι!

Ελπίζω να μην σας έχει πιάσει η καλοκαιρινή ραστώνη και να έχετε διάθεση για λίγο excel (εντάξει πλάκα κάνω)..

 

Λοιπόν, σήμερα αντιμετώπισα το εξής πρόβλημα:

Είχα μια λίστα δεδομένων ως εξής:

 

Α 1 2 3

Α 1 2 3 4

Α 1 2 3 4 5

Β 1

Β 1 2

Γ 1

Γ 1 2

Γ 1 2 3

………….

 

Φυσικά τα δεδομένα ήταν μερικές…χιλιάδες.

 

Αυτό που ήθελα να κάνω ήταν το εξής: Να κρατήσω από την πρώτη στήλη (αυτή με τα γράμματα) την γραμμή που έχει τις περισσότερες πληροφορίες. Δηλ. με την επεξεργασία έπρεπε να έχω το εξής:

 

Α 1 2 3 4 5

Β 1 2

Γ 1 2 3

……… δηλ. τα Α Β Γ κλπ να είναι μοναδικά και να έχουν τη max πληροφορία

 

Αν προσέξατε τα δεδομένα μου ήταν σε μορφή τριγωνικού πίνακα. Η λύση που βρήκα (και δεν μου άρεσε είναι η αλήθεια) ήταν η εξής:

 

Ταξινόμησα τα δεδομένα ως εξής:

 

Α 1 2 3 4 5

Α 1 2 3 4

Α 1 2 3

Γ 1 2 3

Β 1 2

Γ 1 2

….

 

Δημιούργησα δηλαδή έναν άλλο τριγωνικό πίνακα και στην συνέχεια έκανα αφαίρεση διπλών εγγραφών (με βάση την πρώτη στήλη – τα γράμματα), οπότε έγινε τελικά το ζητούμενο.

 

Η λύση μπορώ να πω ότι δεν μου άρεσε ιδιαίτερα αλλά λόγω μειωμένου χρόνου μου έκανε την δουλειά (που ήταν και το ζητούμενο). Το ερώτημα που έχω για εσάς είναι το εξής:

Υπάρχει πιο εύκολος/έξυπνος τρόπος να γίνει η ταξινόμηση που περιγράφω παραπάνω? Αν ναι πως?

 

Ευχαριστώ εκ των προτέρων….

Link to comment
Share on other sites

  • 1 year later...

Επειδή έχω κολλήσει, με ποιον τρόπο σταθεροποιώ μια γραμμή(row) έτσι ώστε κάνοντας scroll down, να τη βλέπω πάντα και να αλλάζουν μόνο οι επόμενες?

Link to comment
Share on other sites

Θα χρησιμοποιήσω επιστημονικούς όρους...

 

πάνω απο την scroll bar έχει ένα μαρκούτσι. Το πιάνεις με το ποντίκι και το τραβάς προς τα κάτω ώστε να χωρίσει το φύλλο εργασίας σε δύο παράθυρα.

split_view_excel_1.jpg

 

Επίσης μπορείς να χρησιμοποιήσεις την εντολή:

Προβολη -> Σταθεροποίηση παραθύρων

View -> Freeze panes

Edited by Gousgounis
Link to comment
Share on other sites

  • 5 months later...

Έχω σε μια στήλη του excel την χιλιομετρική θέση αρχής του επιχώματος σε μορφή πχ 24+450 και στην επόμενη στήλη τη χιλιομετρική θέση τέλους πχ 34+650. Προσπαθώ να κάνω αυτόματα την αφαίρεση για να βρώ το συνολικό μήκος του δρόμου όπου γίνεται το επίχωμα, στο συγκεκριμένο θα είναι 10.200m.

Τι μορφή πρέπει να έχει το κελί για να "καταλαβει" το excel οτι το 24+450 είναι νούμερο και να κάνει την αφαίρεση απο το 34+650?

 

Αν μπορεί κάποις να βοηθήσει, θα το εκτιμούσα.

 

Topap

Link to comment
Share on other sites

A1: 24+450

B1: 34+650

C1: =(MID(B1;1;LEN(B1)-4)-MID(A1;1;LEN(A1)-4))*1000 + RIGHT(B1;3)-RIGHT(A1;3)

(δηλαδή C = B - A)

 

Χρησιμοποιώ την mid και όχι την left για να είναι συμβατό και με μεγαλύτερες ΧΘ (πχ 101+250)

Μια άλλη λύση θα ήταν να ορίσεις ως διαχωριστικό χιλιάδων το "+" από τις ρυθμίσεις των windows

Link to comment
Share on other sites

Gousgounis!

 

Χίλια ευχαριστώ! Να γίνω λίγο αχάριστος και να σε ρωτήσω τι γίνεται στην περίπτωση που έχω δεκαδικά? Πχ. ΧΘ 26+973,40 & ΧΘ 33+056,37. Το δοκίμασα με τη φορμουλα σου και εβγαζε λάθος... Τι πρέπει να αλλάξω?

 

(καλά δεν είναι δα και τόσο σημαντικό, τα μήκη είναι μεγάλα, αλλά για μελλοντική χρήση...)

 

Τ

Edited by Topap
Link to comment
Share on other sites

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε προκειμένου να αφήσετε κάποιο σχόλιο

Πρέπει να είστε μέλος για να μπορέσετε να αφήσετε κάποιο σχόλιο

Δημιουργία λογαριασμού

Κάντε μια δωρεάν εγγραφή στην κοινότητά μας. Είναι εύκολο!

Εγγραφή νέου λογαριασμού

Σύνδεση

Εάν έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
×
×
  • Create New...

Σημαντικό

Χρησιμοποιούμε cookies για να βελτιώνουμε το περιεχόμενο του website μας. Μπορείτε να τροποποιήσετε τις ρυθμίσεις των cookie, ή να δώσετε τη συγκατάθεσή σας για την χρήση τους.