Microsoft Excel

Herbers Excel/VBA-Archiv

Zellentext mit Liste vergleichen und Eigenschaft | Herbers Excel-Forum


Betrifft: Zellentext mit Liste vergleichen und Eigenschaft von: Ingo
Geschrieben am: 05.02.2012 01:22:16

Hallo Zusammen,

vielleicht kann hier jemand helfen - ich bekomme es einfach nicht hin!

Ich habe zwei Excel-Tabellen in der einen habe ich Zellen mit Text.
Pro Zelle will ich nun wissen ob Sie einen Begriff aus der Liste in der zweiten Tabelle enthält,
wenn ja dann soll die Eigenschaft hinterlegt werden.

Tabelle 1
Spalte 1------------------------------------------- Spalte 2
Die Maus ist grau.------------------------------- Hier soll die Eigenschaft hin.
Das Pferd steht auf der Weide.
Die Sonne scheint und der Eisbär lacht.
Der Mond ist hell und der Rabe dunkel.
usw.


Tabelle 2
Spalte 1----Spalte 2
Pferd-------- schnell
Maus-------- klein
Eisbär------- groß
Rabe-------- schwarz
usw.-------- usw.

Weis jemand wie ich das machen kann - wäre echt ne sehr große Hilfe!

Danke
Gruß Ingo

  

Betrifft: Wenn nur je ein Suchbegriff im Quelltext ... von: Luc:-?
Geschrieben am: 05.02.2012 03:10:35

…auftreten kann, Ingo,
ist das kein Problem, denn mit der 1zelligen MatrixFml (in xlHilfe nachlesen!)
{=INDEX($bereich_tab2sp2;SUMME(ISTZAHL(FINDEN($bereich_tab2sp1;zelle_tab1sp1zl1) )*ZEILE($1:$zeilenanzahl_tab2sp2))) }
sollte es in TabSp2Zl1 fktionieren. Dann runterziehen/-kopieren. Absolute($)/relative Bezüge beachten!
Gruß+schöSo, Luc :-?


  

Betrifft: Nachtrag: Wenn GB/KB irrelev SUCHEN statt FINDEN! von: Luc:-?
Geschrieben am: 05.02.2012 03:12:56

:-?


  

Betrifft: INDEX reagiert mit ganzem Datenfeld auf ... von: Luc:-?
Geschrieben am: 05.02.2012 14:46:16

…Argument2/3=0, Ingo,
weshalb du bei meiner Fml, falls der Quelltext keinen der Suchbegriffe enthält, immer die 1.Eigenschaft bekommst. Um das zu vermeiden, müsste noch Summe=0 abgefangen wdn → also …
{=WENN(SUMME(ISTZAHL(FINDEN($bereich_tab2sp1;zelle_tab1sp1zl1)) *ZEILE($1:$zeilenanzahl_tab2sp2))=0;"";INDEX($bereich_tab2sp2; SUMME(ISTZAHL(FINDEN($bereich_tab2sp1;zelle_tab1sp1zl1)) *ZEILE($1:$zeilenanzahl_tab2sp2)))) }

Kürzer wird die Fml, wenn du entweder den sich wiederholenden FmlTeil als benannte Fml anlegst und dann in der ZellFml 2x deren Namen verwendest oder diesen FmlTeil beim 1.Auftreten als Argument einer kleinen, indie Fml integrierten udFkt übergibst, die sich das Ergebnis ihres Arguments (also des FmlTeils) temporär „merkt” und bei fehlendem Argument das zuletzt „Gemerkte” zurückgibt, so dass statt der 2.FmlTeil-Notation nur diese MerkFkt ohne Argument stehen muss. Das ergäbe dann …
Fall 1 (Namen):
suchsumme: =SUMME(ISTZAHL(FINDEN($bereich_tab2sp1;zelle_tab1sp1zl1))*ZEILE($1:$zeilenanzahl_tab2sp2))
TabSp2Zl1: {=WENN(suchsumme=0;"";INDEX($bereich_tab2sp2;suchsumme*ZEILE($1:$zeilenanzahl_tab2sp2))))}
Beachte, dass TabSp2Zl1 ausgewählt sein muss, wenn der Name suchsumme angelegt wird!
Fall 2 (mit udFkt):
TabSp2Zl1: {=WENN(Merke(SUMME(ISTZAHL(FINDEN($bereich_tab2sp1;zelle_tab1sp1zl1))*ZEILE($1:$zeilenanzahl_tab2sp2)))=0;"";INDEX($bereich_tab2sp2;Merke()*ZEILE($1:$zeilenanzahl_tab2sp2))))}

Function Merke(Optional Bezug)
    Static VorBezug
    If Not IsMissing(Bezug) Then VorBezug = Bezug
    Merke = VorBezug
End Function
Beachte, dass anstelle von FINDEN mitunter SUCHEN die bessere Wahl ist!
Gruß Luc :-?


  

Betrifft: AW: INDEX reagiert mit ganzem Datenfeld auf ... von: Ingo
Geschrieben am: 05.02.2012 17:31:57

Hallo Luc :-?


Merci erstmal!

Vielleicht hätte ich eher Anfänger angeben sollen...
Versuche deine Antwort zu verstehen - jedoch komme ich da nicht weiter.

Mit der Antwort von Sepp komme ich an einer Stelle nicht weiter.

Beste Grüße

Ingo


  

Betrifft: Da du die Bereiche nur allgemein angegeben ... von: Luc:-?
Geschrieben am: 05.02.2012 20:50:35

…hast, Ingo;
habe ich die auch genauso allgemein in die Fml eingetragen (klein geschrieben). Die musst du nun durch deine realen Bezüge ersetzen, was doch schon mit XlGrundkenntnissen möglich sein muss!
Zumindest die HptFml (Fall 0) solltest du so zum Laufen bringen, denn sie ist in einer konkreten Ausprägung auf Fktionalität getestet worden! Für die anderen Fall-Vorschläge solltest du erst die entsprd Hilfen lesen, wenn du dich damit nicht auskennst.
Gruß Luc :-?


  

Betrifft: AW: Zellentext mit Liste vergleichen und Eigenschaft von: Josef Ehrensberger
Geschrieben am: 05.02.2012 10:04:54


Hallo Ingo,

Tabelle1

 ABCD
1TextEigenschaft  
2Die Maus ist grau.klein  
3Das Pferd steht auf der Weide.schnell  
4Die Sonne scheint und der Eisbär lacht.groß  
5Der Mond ist hell und der Rabe dunkel.schwarzsilber 

Formeln der Tabelle
ZelleFormel
B2{=WENN(ISTZAHL(KKLEINSTE(WENN(ISTZAHL(SUCHEN(Tabelle2!$A$2:$A$6;$A2)); ZEILE($1:$5)); SPALTE(A1))); INDEX(Tabelle2!$B$2:$B$6;KKLEINSTE(WENN(ISTZAHL(SUCHEN(Tabelle2!$A$2:$A$6;$A2)); ZEILE($1:$5)); SPALTE(A1))); "")}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Tabelle2

 AB
1SuchberiffEigenschaft
2Pferdschnell
3Mausklein
4Eisbärgroß
5Rabeschwarz
6Mondsilber
7  


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4






« Gruß Sepp »



  

Betrifft: Kürzer von: Josef Ehrensberger
Geschrieben am: 05.02.2012 10:55:27


Hallo Ingo,

Tabelle1

 ABCD
1TextEigenschaft  
2Die Maus ist grau.klein  
3Das Pferd steht auf der Weide.schnell  
4Die Sonne scheint und der Eisbär lacht.groß  
5Der Mond ist hell und der Rabe dunkel.schwarzsilber 

Formeln der Tabelle
ZelleFormel
B2{=WENN(ANZAHL(SUCHEN(Tabelle2!$A$2:$A$6;$A2))<SPALTE(A1); "";INDEX(Tabelle2!$B$2:$B$6;KKLEINSTE(WENN(ISTZAHL(SUCHEN(Tabelle2!$A$2:$A$6;$A2)); ZEILE($1:$5)); SPALTE(A1))))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4






« Gruß Sepp »



  

Betrifft: AW: Kürzer von: Ingo
Geschrieben am: 05.02.2012 17:06:11

Hallo Sepp,

vielen Dank erstmal!!!
Funktioniert prima, aber nach Anpassung habe ich noch ein Probelm in
meinem Königreich der Tiere.
Hab jetzt grad 1, 5 Stunden versucht - bekomme es aber nicht behoben.
Er verrutscht bei den Eigenschaften um ein nach unten -sprich Maus nicht "klein" sonder "groß", bekomme jetzt also immer den falschen Wert und was ich auch mache - geht nicht ;(

Formel sieht jetzt so aus:

=WENN(ISTZAHL(KKLEINSTE(WENN(ISTZAHL(SUCHEN(Tabelle2!$A$2:$A$500;$G23));ZEILE($2:$500)); SPALTE(A6))) ;INDEX(Tabelle2!$B$2:$B$500;KKLEINSTE(WENN(ISTZAHL(SUCHEN(Tabelle2!$A$2:$A$500;$G23));ZEILE($2:$500)) ;SPALTE(A6)));"")

Was mache ich falsch?

Beste Grüße

Ingo


  

Betrifft: AW: Kürzer von: Josef Ehrensberger
Geschrieben am: 05.02.2012 17:40:23


Hallo Ingo,
Zeile($1:$499)
und nimm die kürzere Version.




« Gruß Sepp »



  

Betrifft: Und von: Josef Ehrensberger
Geschrieben am: 05.02.2012 17:45:12


Hallo Ingo,

den Matrixformel-Hinweis hast du auch beachtet, ja?




« Gruß Sepp »



  

Betrifft: AW: Kürzer von: Ingo
Geschrieben am: 05.02.2012 18:21:58

Hallo Sepp,

viiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiielen Dank!!!!!!!!!
Jetzt funzt es!

Das rettet mir echt den Tag!

Matrixformel habe ich beachtet - ohne bekomme ich kein gescheites Ergebnis.

Schönen So und beste Grüße

Ingo


Beiträge aus den Excel-Beispielen zum Thema "Zellentext mit Liste vergleichen und Eigenschaft"