CostasV Δημοσιεύτηκε Ιούλιος 26 , 2010 Share Δημοσιεύτηκε Ιούλιος 26 , 2010 Οντως, excel-lent είναι η λύση του Gousgounis, αλλά κάνε το καλό, και πες ποιές είναι οι παράμετροι που θα πρέπει να μπουνε στην συνάρτηση που έδωσες, στην γενική περίπτωση που έχουμε Μ γραμμές και Ν στήλες; Link to comment Share on other sites More sharing options...
Samdreamth Δημοσιεύτηκε Ιούλιος 26 , 2010 Share Δημοσιεύτηκε Ιούλιος 26 , 2010 Τελικά το βρήκα και παραθέτω τον κώδικα: > PROGRAM SEIRA DIMENSION A(8,183) !Ορίζεις τις διαστάσεις του αρχικού σου πίνακα, εδω οχ 8 γραμμές χ 183 στήλες OPEN (1, FILE = 'input.txt') !Ανοίγεις το αρχείο των δεδομένων εισόδου σου. DO I=1,8 READ (1,*)(A(I,J),J=1,183) !Το πρόγραμμα διαβάζει τα δεδομένα. ENDDO CLOSE (1) OPEN (2, FILE = 'out.txt') ! Ανοίγει το αρχείο εξόδου DO I=1,183 DO J=1,8 WRITE (2,*)A(J,I) ! Γράφει τα αρχεία εξόδου με τέτοιο τρόπο ώστε να δημιουργηθεί μια σειρά με 1464 γραμμές = 8 χ 183 ENDDO ENDDO CLOSE (2) STOP END Gousgounis: Για εξήγησε λίγο σε παρακαλώ την σύνταξη. Πχ, αν έχω τα εξής δεδομένα στα κελιά Α1 έως D5: 1 2 3 4 7 3 5 4 6 9 5 3 1 2 0 7 8 6 4 3 Πως θα πρέπει να συντάξω την εντολή που παρέθεσες ώστε να μου βγει μια στήλη με τα 20 αυτά στοιχεία? Ευχαριστώ εκ των προτέρων... Link to comment Share on other sites More sharing options...
ZaXoYs Δημοσιεύτηκε Ιούλιος 26 , 2010 Share Δημοσιεύτηκε Ιούλιος 26 , 2010 Κατεβάστε το excel και δείτε το http://www.cpearson.com/Zips/MatrixToVector.zip Link to comment Share on other sites More sharing options...
gvarth Δημοσιεύτηκε Ιούλιος 26 , 2010 Share Δημοσιεύτηκε Ιούλιος 26 , 2010 Μπράβο παίδες . Τώρα αν ο gvarth έχει καμιά καλή ιδέα είμαι όλος αυτιά! Ο gvarth για λίγες μέρες βρίσκεται σε οικογενειακές διακοπές. . Όποιος είναι online και γνωρίζει , απαντά. @Gousgounis : Μπράβο ! Μια και την INDIRECT δεν την πολυχρησιμοποιώ, εκείνο που θα πρότεινα είναι κάτι σαν τον κώδικα του Samdreamth αλλά σε Excel VBA. Πάντως η INDIRECT θα δίνει τα πιο γρήγορα αποτελέσματα σαν εσωτερική συνάρτηση της βιβλιοθήκης συναρτήσεων του Excel. Περισσότερα για την INDIRECT θα διαβάσετε μεταξύ των άλλων εδώ ή και εδώ . Link to comment Share on other sites More sharing options...
Samdreamth Δημοσιεύτηκε Ιούλιος 26 , 2010 Share Δημοσιεύτηκε Ιούλιος 26 , 2010 Ζάχο: Επειδή κοιτούσα το excel έχω την εξής απορία (ίσως είναι και χαζή αλλά την ρωτάω): μέσα στην συνάρτηση που βάζει για να κάνει τον πίνακα 1 σειρά (με πολλές γραμμές), χρησιμοποιεί το matrix. Πως ορίζει ότι ο πίνακας είναι ο C3:J8? Κάτι χάνω κάπου... Και μια άλλη άσχετη απορία: Θέλω να γράψω μια συνάρτηση στην οποία να έχει πολλά if, και δυστυχώς με τη nested if έχω περιορισμό στα 7 if. Για να σας δώσω να καταλάβετε έχω το εξής θέμα: Α1 κενό κελί Β1 C1 D1 ... Και θέλω να κάνω κάτι σαν κενό κελί = if(A1 = 1;"Ω";if(A1=2;X";"") αλλά έχω πολλά if. Φαντάζομαι ότι με VB γίνεται (για να μην καταφύγω σε fortran), σωστά? Μπορεί κανένα καλό παιδί να με βοηθήσει? Ευχαριστώ και πάλι... Link to comment Share on other sites More sharing options...
jackson Δημοσιεύτηκε Ιούλιος 26 , 2010 Share Δημοσιεύτηκε Ιούλιος 26 , 2010 Παίδες σας ευχαριστώ όλους. Χρησιμοποίησα του Ζάχου και βγήκε πολύ έυκολα! Παρόμοιο πρέπει να είναι και του Gousgounarou, αν και δεν το δοκίμασα. Samdreamth δεν είμαι εγώ για Fortran:D:D:D...πάντως ευχαριστώ! Link to comment Share on other sites More sharing options...
ZaXoYs Δημοσιεύτηκε Ιούλιος 26 , 2010 Share Δημοσιεύτηκε Ιούλιος 26 , 2010 Για το πρώτο σκέλος Νομιζω οτι γίνεται πολύ απλά .Γράφεις τον πίνακα όπως τον θες ,τον επιλέγεις (μαρκάρεις) και πατάς Εισαγωγή-->όνομα--> ορισμός και βάζεις το όνομα που θες (στο παράδειγμα matrix) απότε από εκεί και πέρα αναφέρεσαι σαν matrix ή όποιο άλλο όνομα στα συγκεκριμένα κελιά (χρήσιμο γενικότερο) εντιτ : και του gousgouni δουλεύει άψογα απλώς είχα το worksheet από παλιότερα και δουλεύω πάνω σε αυτό , αν κάτι δουλεύει μην το πολυπειράζεις (Merfy) Link to comment Share on other sites More sharing options...
John_John Δημοσιεύτηκε Ιούλιος 26 , 2010 Share Δημοσιεύτηκε Ιούλιος 26 , 2010 Καλησπέρα και από εμένα! Έστω ότι έχουμε πολλές στήλες και σειρές με αριθμούς. Πώς θα μπορέσω όλες τις στήλες να τις μεταφέρω κάτω από την 1η, έτσι ώστε να έχω μόνο 1 στήλη με όλους τους αριθμούς; Εκτός από τις λύσεις που εδόθησαν, μια ακόμη είναι και η χρήση του παρακάτω τύπου ο οποίος δημιουργεί μια στήλη με τις τιμές του πίνακα "Matrix" σε αύξουσα ταξινόμηση: >=SMALL(Matrix;ROW(a1)) Το κακό με αυτή τη λύση είναι πως το 0 (μηδέν) εμφανίζεται πριν το 1 και όχι μετά το 9. Αν αυτό δεν είναι επιθυμητό, τότε μπορούμε να χρησιμοποιήσουμε τον παρακάτω τύπο αναφοράς, ο οποίος αντιγράφει κατακόρυφα τις τιμές του πίνακα "Matrix" με τη σειρά που αυτές εμφανίζονται. >=INDEX(Matrix;MOD(ROW(a1)-1;2)+1;INT((ROW(a1)-1)/2)+1) Στην πραγματικότητα, είναι απλώς μια παραλλαγή του τύπου που μας έδωσε ο Gousgounis και όπως άλλωστε θα περίμενε κανείς, είναι αρκετά μικρότερος από του Gousgouni. Οι παραπάνω λύσεις, υποθέτουν πως ο αρχικός πίνακας τιμών διαθέτει 2 γραμμές και άγνωστες στήλες και φέρει το όνομα Matrix. Ελπίζω να φανούν χρήσιμες... 1 Link to comment Share on other sites More sharing options...
jackson Δημοσιεύτηκε Ιούλιος 26 , 2010 Share Δημοσιεύτηκε Ιούλιος 26 , 2010 Ευχαριστώ Γιάννη Γιάννη, αλλά έχω πολλεεεεεές σειρές και πολλεεεεές στήλες:D:D!!! Link to comment Share on other sites More sharing options...
John_John Δημοσιεύτηκε Ιούλιος 26 , 2010 Share Δημοσιεύτηκε Ιούλιος 26 , 2010 Μην ανησυχείς jackson! Έχουμε λύσεις για όλα τα γούστα! Με την αυτή την έκδοση, παύεις πλέον να ανησυχείς για το μέγεθος του ...πίνακά σου: >=INDEX(Matrix;MOD(ROW(a1)-1;ROWS(Matrix))+1;INT((ROW(a1)-1)/ROWS(Matrix))+1) αρκεί το όνομα "Matrix" να περιλαμβάνει όλα τα κελιά του πίνακα τιμών. Φυσικά τα ίδια ισχύουν και για τον πρώτο τύπο, τον ...Small στο μάτι. 2 Link to comment Share on other sites More sharing options...
Recommended Posts
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε προκειμένου να αφήσετε κάποιο σχόλιο
Πρέπει να είστε μέλος για να μπορέσετε να αφήσετε κάποιο σχόλιο
Δημιουργία λογαριασμού
Κάντε μια δωρεάν εγγραφή στην κοινότητά μας. Είναι εύκολο!
Εγγραφή νέου λογαριασμούΣύνδεση
Εάν έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα