Clever-Excel-Forum

Normale Version: Wörter in Zellen zählen ohne Duplikate
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich benutze Excel eigentlich nur für wirklich einfach Dinge..
Zur Zeit analyse ich Daten von RNA-Sequenzierungen (Biologie) :19: und hätte ein Anliegen, das meine Arbeit um einiges erleichtern und beschleunigen würde..

Ich habe Listen mit so genannten GO terms (sie Ahnhang, in diesem Fall unter Säule C "pathway"). Ein GO term wird durch viele verschiedene Gene beschrieben (hier Säule D "members_input_overlap"), aber ein Gen kann in mehreren GO terms vorkommen.
Ich würde jetzt gerne die Wörter in allen Zellen der Säule D zählen, möchte aber Duplikate auschließen.
Wie man Wörter in einer Zelle zählt weiß ich, aber wie kann ich das ausweiten und zusätzlich noch Duplikate ausschließen, dass zum Beispiel das Wort "Notch1" in D5 und D6 nur einmal gezählt wird?

[attachment=31242]


Hoffe, es wird deutlich, was ich machen möchte :20: 

Vielen Dank schon mal und viele Grüße,
M
Hallo,

mit VBA sollte es möglich sein.

Lade bitte eine klein Beispiel-Datei hoch.

mfg
Hi,

danke für deine Rückmeldung, das gibt schon mal Hoffnung Smile


Anbei ein Beispiel.

Grüße,
M
Hallo,

Begriffe wie "Säule D" sind innerhalb von Excel höchsten als Spalte 4 (=D) definiert.

Sollen die Begriffe aus B2:B8 nur einmal vorkommen, oder nur aus "Pathway" B3:B4?

mfg

(beides ist kein Problem)

Hallo,

der folgende Code bringt alle Worte aller Zellen der Spalte B untereinander und immer 1 Wort pro Zeile in Spalte E.

Code:
Sub Main
for i = 2 to cells(rows.count, 2).end(xlup).row
    Tx = Tx & cells(i,2)
next i

Anz = split(Tx, ";")
cells(2,5).resize(ubound(Anz)+1) = application.transpose(Anz)
End Sub

Danch geht das Eliminieren von Doppelten mit dem Spezialfilter im Menü "Daten".

mfg
Mega, vielen Dank, das rettet mir einiges an Arbeit! Smile

Das einzig kleine Problem ist, dass das letzte Wort einer Zelle mit dem ersten Wort der nächsten Zelle nach Anwendung des Codes immer zusammen in einer Zelle steht, siehe zum Beispiel E40, E49, E53 usw

Ich denke mal, weil das letzte Wort einer Zelle nie mit ; aufhört?

Könnte man das noch beheben im Code?

Vielen Dank!
Ein angehängtes Semikolon sollte das beheben:

Code:
Sub Main
for i = 2 to cells(rows.count, 2).end(xlup).row
    Tx = Tx & cells(i,2) & ";"  ' <<<<< neu
next i

Anz = split(Tx, ";")
cells(2,5).resize(ubound(Anz)+1) = application.transpose(Anz)
End Sub