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

Excel - VBA ή formula?


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

Δημοσ.

Καλημέρα στην παρέα,

ενδεχομένως να κουράσω αλλά πλέον χρειάζομαι τα φώτα όποιου γνωρίζει κάτι παραπάνω.

Έχω 2 διαφορερικά αρχεία excel:

Spoiler

zKnTh.pngdvOVU.png

Στο πρώτο excel (#1) 2 στήλες που η μια (Α) έχει έναν "τύπο" και στην άλλη (B) θα μπεί το ζητούμενο αποτέλεσμα.

Αυτό θέλουμε να είναι το concatenate των 3 στηλών (B, C, D) από το δεύτερο excel (#2) που στην ίδια γραμμή έχουν τον ίδιο "τύπο" (στήλη Α), εκτός εκείνων που στην στήλη B έχουν τον χαρακτήρα ":", οπότε παραλείπεται. Μεταξύ των γραμμών του #2 θα υπάρχει σαν delimiter το line break "CHAR(10)" ενώ το περιεχόμενο της στήλης C θα βρίσκεται ανάμεσα σε αγκύλες "[   ]".

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

E2=B2&"["&C2&"]"&D2) για να τα συνδιάσω όλα

F2=IF(LEFT(E2;2)=":[";"";E2) για να είναι κενά τα κελιά που ξεκινούν με το ":"

=TEXTJOIN(CHAR(10);TRUE;F2:F26) για να βάλω σε ένα κελί όλα τα αποτελέσματα.

 

Κατά πάσα πιθανότητα να υπήρχε πιο εύκολος ή κατανοητός τρόπος να το περιγράψω, αλλά δυστυχώς δεν μπορούσα να το διατυπώσω καλύτερα.  😅

Ευχαριστώ αρχικά όποιον μπήκε στον κόπο να το διαβάσει όλο μέχρι εδώ και είμαι υπόχρεος σε όποιον μπορεί να βοηθήσει!!

Δημοσ.

Δοκίμασε την TEXTJOIN ως array formula όπως παρακάτω:

=TEXTJOIN(CHAR(10);TRUE;IF(($B$2:$B$26<>":")*($A$2:$A$26=1);$E$2:$E$26;""))

Εισάγεις με Ctrl+Alt+Enter.

Αν δουλέψει στο παράδειγμά σου με TYPE=1, κάνε τις απαραίτητες προσαρμογές στις αναφορές ώστε να την εισάγεις στο πρώτο αρχείο.

 

 

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

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

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

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

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

Σύνδεση

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

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