Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Έστω ότι έχουμε τα στοιχεία της εικόνα σε ένα αρχείο excel. Υπάρχει τρόπος να παίρνω σε ένα κελί (ας πούμε στο τέλος κάθε γραμμής) κάτι σαν το παρακάτω;

(Mn0K0Ti0.0506Ca0.2148Na0.3303Al0.6311Fe1.3252Mg2.2684)(Si8,1580)6,3461Η2Ο

Δηλαδή στο τέλος το ποσό του H2O και πριν από αυτό γραμμένα τα υπόλοιπα με αύξουσα σειρά με βάση των αριθμό κάθε στοιχείου (θέλω να φαίνονται κανονικά και οι τίτλοι των στοιχείων όπως το παράδειγμα που έδωσα παραπάνω); 

Το παράδειγμα είναι το αποτέλεσμα που προκύπτει με βάση την δεύτερη γραμμή του excel που φαίνεται στην εικόνα. 

Χωρίς τίτλο.png

Δημοσ. (επεξεργασμένο)

Ψάξε συναρτήσεις 

sortby και concatenate στο excel

 

εγώ θα το έκανα ως εξής

α) θα ταξινομούσα την γραμμή με βάση τις τιμές και θα τις έβαζα στις στήλες K,L,M,N...

β) θα χρησιμοποιούσα την concatenate για να "ένωνα" τις τιμές που έχουν τα κελιά

Επεξ/σία από newnick
Δημοσ.

Αυτό που λες σκέφτηκα και εγώ, απλά πως θα γίνει να ξέρω ότι πχ το 0 αντιστοιχεί με το "Mn" ώστε να προσθέσω και αυτό στο κείμενο; Δεν είναι πάντα το ίδιο στοιχείο στην ίδια θέση. 

Επίσης, δεν κατάφερα να κάνω την SORTBY να λειτουργήσει σε row.

Δημοσ.

Τότε βάλε και την TRANSPOSE στο κόλπο

α) δημιούργησε ένα καινούργιο πίνακα όπου οι γραμμές θα είναι στήλες και οι στήλες γραμμές με την trasnpose

β) κάνε sortby στον καινούργιο πίνακα (ΠΡΟΣΟΧΗ σε μένα υπάρχει μόνο στο OFFICE 365 όχι στο 2019!?!?!!?)

γ) κάνε concate στον ταξινομημένο πίνακα

σου έχω μια εικόνα απο ένα απλό παράδειγμα που έκανα

(μπλε αρχικός απο κάτω transposed κόκκινος ταξινομημένος και υπογραμμισμένο το τελικό συννενωμένο)

 

βοήθεια για transpose εδώ

βοήθεια για sortby εδώ 

excel.JPG

Δημοσ.

Δεν μου βγαίνει (άσε που δεν έχω την SORTBY). Απλά μάλλον για να γίνει ακριβώς όπως το θέλω πρέπει να χρησιμοποιηθεί και vbscript. Ή απλά δεν τα κατανοώ τόσο καλά. :P

Για την ιστορία η TRANSPOSE δεν μου λειτούργησε σε EXCEL, ενώ έκανα την δοκιμή σε GOOGLE Sheets και λειτούργησε κανονικά. 

Όπως και να έχει σε ευχαριστώ πάρα πολύ για τον χρόνο σου. 

Δημοσ.

Λοιπόν, έπαιξα λίγο με αυτά που ζητάς και η πρότασή μου είναι η εξής:
1. Φτιάχνεις ένα rank system αναλόγως των τιμών σε κάθε σειρά.
2. Δημιουργείς ένα index/match, που να επιστρέφει τα στοιχεία αναλόγως το rank.
3. Ένα τελευταίο index/match, που να επιστρέφει τις τιμές αναλόγως των δεδομένων του 2.
4. Ένα concatenate που να βγάζει το επιθυμητό αποτέλεσμα.

Spoiler

 

Εφόσον το H2O το θέλουμε χώρια, τότε θα κάνουμε τα παραπάνω για 9 στήλες, αντί για 10. 
1. Βάζεις σε παραδίπλα στήλη την συνάρτηση (ας πούμε στην L2):
=RANK.EQ(A2;$A2:$I2;1)+COUNTIF($A2:A2;A2)-1
και την σέρνεις μέχρι το T2.
2. Παραδίπλα (π.χ. V2), βάζεις την συνάρτηση:
=INDEX($A$1:$I$4;1;MATCH(COLUMN(A1);$L2:$T2;0))
και την σέρνεις μέχρι το AD2.
3. Ας πούμε στο AF2, βάζεις την συνάρτηση:
=INDEX($A$1:$I$4;ROW(A2);MATCH(V2;$A$1:$I$1;0))
και την σέρνεις μέχρι το AN2.
4. Και τέλος παραδίπλα, βάζεις την συνάρτηση:
="("&CONCATENATE(V2;AF2;W2;AG2;X2;AH2;Y2;AI2;Z2;AJ2;AA2;AK2;AB2;AL2;AC2;AM2;")";"(";AD2;AN2;")")&J2&$J$1
και παίρνεις το αποτέλεσμα που επιθυμείς.

Υποσημειώσεις:
Η παραπάνω συνάρτηση για το rank, όταν έχουμε 2 ίδιες τιμές (π.χ. τα Mn και K του αρχικού μηνύματος), τοποθετεί πάντα πρώτο αυτό που βρίσκεται αριστερότερα. Τυχόντες ίσες τιμές που βρίσκονται δεξιότερα, λαμβάνουν +1 θέση στην κατάταξη.
Για πίνακα, έχω βάλει από A1:I4. Αν χρειάζεσαι μεγαλύτερο, θα πρέπει να αλλάξεις και τις συναρτήσεις.
Στο αρχικό μήνυμα, έχεις το πυρίτιο σε χωριστή παρένθεση. Αν το θες να είναι μαζί με τα άλλα στοιχεία, πείραξε λίγο την concatenate.
Για λόγους ευκολίας, τα Fe3+ και H2O-, αναγράφονται πλήρως.
Οι συναρτήσεις είναι έτσι φτιαγμένες, ώστε να μπορείς να τις σύρεις προς τα κάτω.
Με ομαδοποίηση ή απόκρυψη, οι έξτρα στήλες μπορούν να κρυφτούν.

 

 

  • Like 1
Δημοσ.

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

="("&CONCATENATE(V2;AF2;W2;AG2;X2;AH2;Y2;AI2;Z2;AJ2;AA2;AK2;AB2;AL2;AC2;AM2;")";"(";AD2;AN2;")";J2;$J$1)

Για το πυρίτιο, είχα κάνει λάθος. Μόνο την μεγαλύτερη τιμή όλων εκτός από το H2O- βάζει σε χωριστή παρένθεση. Αν θες να μπαίνει μόνο το πυρίτιο πες μου να το διορθώσω ή αν δεν θες την έξτρα παρένθεση, σβήνεις τα κατάλληλα κομμάτια από την concatenate.

Δημοσ.
7 ώρες πριν, demessakis είπε

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

="("&CONCATENATE(V2;AF2;W2;AG2;X2;AH2;Y2;AI2;Z2;AJ2;AA2;AK2;AB2;AL2;AC2;AM2;")";"(";AD2;AN2;")";J2;$J$1)

Για το πυρίτιο, είχα κάνει λάθος. Μόνο την μεγαλύτερη τιμή όλων εκτός από το H2O- βάζει σε χωριστή παρένθεση. Αν θες να μπαίνει μόνο το πυρίτιο πες μου να το διορθώσω ή αν δεν θες την έξτρα παρένθεση, σβήνεις τα κατάλληλα κομμάτια από την concatenate.

Δουλεύουν άψογα τα όσα μου έστειλες.

Σε ευχαριστώ πολύ!

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

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

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

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

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

Σύνδεση

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

Συνδεθείτε τώρα
  • Δημιουργία νέου...