Textsuchfeld und dynamische Tabelle
#11
Hallo,

danke schon einmal für deine Hilfe. Ich kann deine genannte Formel nicht so recht "einbauen":

=WENNFEHLER(INDEX(INDEX(Loc!$B$2:Loc!$K$9000;0;VERGLEICH($B$2;DropdownProdukt!$A$1:DropdownProdukt!$A$50;0));AGGREGAT(15;6;ZEILE(Loc!$B$2:Loc!$B$9000)/ISTZAHL(SUCHEN($A$3;INDEX(Loc!$B$2:Loc!$K$7000;0;VERGLEICH($A$2;Loc!$B$1:Loc!$K$1;0))))-ZEILE(Loc!$A$1);ZEILE(Loc!C1)));"")

Ich habe mal die Zelle fett markiert, die das Suchfeld ist, hier müsste man Veränderungen einbauen, korrekt? Mit den Sternen kann ich aber keine Suchkriterien festlegen oder?

Viele Grüße!
Top
#12
Hallöchen,

schaue mein Beispiel mal richtig an. Suchen findet den Text auch ohne Sterne, nur der Vergleich braucht sie ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • majag001
Top
#13
Hallo,

wenn ich die Sterne bei Vergleich einsetze, bekomme ich ein Formelfehler  22
Top
#14
Hallo majag,

Zitat:Bei der Suche nach Wörtern sollen auch Teile der Zellen gefunden werden

Die Formel in G4 in meiner Beispieldatei aus #5 berücksichtigt (in weiser Voraussicht) doch genau das schon; dafür ist der Formelteil "...ISTZAHL(SUCHEN($E$4; …" zuständig.
In dem Suchfeld in E4 muss nur ein Teil eines Wortes eingegeben werden und die Formel in G4:G11 listet alle Einträge auf, in denen der Wortteil aus E4 enthalten ist.

Deine Formel (aus #9) scheint, soweit ich das ohne die zugehörige Datei beurteilen kann, auch zu stimmen - bis auf ein paar kleine "Schönheitsfehler"

1. Beim Bezug auf einen Zellbereich auf ein anderes Tabellenblatt muss der Tabellenblattname nur einmal angegeben werden, also
=SUMME(Tabelle2!$A$1:$A$10)
statt
=SUMME(Tabelle2!$A$1:Tabelle2!$A$10)

2. Und der hier rot markierte Bereich war in deiner Formel 7000
=WENNFEHLER(INDEX(INDEX(Loc!$B$2:$K$9000;0;VERGLEICH($B$2;DropdownProdukt!$A$1:$A$50;0));AGGREGAT(15;6;ZEILE(Loc!$B$2:$B$9000)/ISTZAHL(SUCHEN($A$3;INDEX(Loc!$B$2:$K$9000;0;VERGLEICH($A$2;Loc!$B$1:$K$1;0))))-ZEILE(Loc!$A$1);ZEILE(Loc!C1)));"")
Aber auch das sollte eigentlich keinen Fehler verursachen (sondern höchstens falsche Ergebnisse….)

Oder möchtest du jetzt noch etwas anderes (erreichen) ?
Dann solltet du eine neue Beispieldatei hier hochladen und genauer beschreiben, was du möchtest.

Gruß
Fred
[-] Folgende(r) 1 Nutzer sagt Danke an Fred11 für diesen Beitrag:
  • majag001
Top
#15
Hi Fred,

vielen Dank für deine Hilfe!
Jetzt funktioniert die Suche auch irgendwie  Huh Es klappt alles, das war wohl mal wieder ein Verständnisfehler meinerseits - vielen Dank!

Und auch vielen Dank für deine Tipps zur Formelverbesserung  Blush

Hallo nochmal,

nun habe ich ein (letztes) Anliegen:


Was klar ist: In der Spalte "Suchen" kann ich die gesamte Tabelle A:C durchsuchen, die Ergebnisse werden mir in Spalte "Ergebnis" untereinander aufgelistet. 
Jetzt kommt aber eine neue Spalte D "Produkt" hinzu. Hier möchte ich ein oder mehrere Produkte auswählen, und nur die sollen dann in der Ergebnisspalte aufgelistet werden. Die anderen Ergebnisse, obwohl die Formel von Fred11 diese finden würde, sollen ignoriert werden.

Natürlich könnte ich einfach das Ergebnis laufen lassen und dann einen dynamischen Filter setzen, geht das aber auch "eleganter" ? 
Top
#16
Hallo majag,

ich habe die Beispieldatei aus #5 entsprechend erweitert, so wie ich dein Anliegen verstanden habe.

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEFGHI
1NameProjekttypFertigProdukt
2super123jaOrangeSucheErgebnis NEU
3test321neinOrangeNameProduktFertig
4halllo45neinBananeegonBananevielleicht
5EgonxyzvielleichtOrangeOrangeja
6testa1jaApfelvielleicht
7gerdb5neinOrange
8erde815neinApfel
9PaulPferdeweiss nichtApfel
10PaulxyzegalBanane
11EgonxyzjaOrange

ZelleFormel
I4=WENNFEHLER(INDEX(INDEX($A$2:$C$20;0;VERGLEICH($I$3;$A$1:$C$1;0));AGGREGAT(15;6;ZEILE($A$2:$A$20)/(ISTZAHL(SUCHEN($F$4;INDEX($A$2:$C$20;0;VERGLEICH($F$3;$A$1:$C$1;0))))*(ZÄHLENWENN($G$4:$G$11;$D$2:$D$20)+(ANZAHL2($G$4:$G$11)=0)))-ZEILE($A$1);ZEILE(A1)));"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Dieser Ergänzung der Formel
*(ZÄHLENWENN($G$4:$G$11;$D$2:$D$20)+(ANZAHL2($G$4:$G$11)=0))
ist dafür zuständig, dass nur diejenigen Einträge in Spalte D (Produkt) berücksichtigt werden, die in Spalte G aufgeführt sind.

Hast du das so gemeint ?
Ansonsten musst du mal eine neue Beispieldatei hier hochladen, mit händisch eingetragenem Wunschergebnis, in der ersichtlich ist, was genau du möchtest.

Gruß
Fred


Angehängte Dateien
.xlsx   Textsuchfeld und dynamische Tabelle_NEU_fs+.xlsx (Größe: 15,68 KB / Downloads: 4)
Top
#17
Hallo

was haltet ihr von einer amüsanten VBA Lösung, fand ich vor kurzem im Herber Forum. Hier umgeschrieben auf die gewünschte "ja" Auswertung.

mfg Gast 123

Code:
Option Explicit
Const DMax = 20     'max Anzahl der Datensaetze in Der Msgbox


'Suchen über MsgBox mit InputBox Eingabe

Sub Suchen()
    Dim ProNr As Variant
    Dim Projekt As String
    Dim SuchText As String, fmd, rw
    Dim rFind As Range, Adr1 As String
    Dim gesTxt As String, n As Integer
   
    SuchText = InputBox("Suchbegriff:")
    If SuchText = Empty Then Exit Sub
   
    On Error GoTo Fehler
    Set rFind = Columns("A:B").Find(What:=SuchText, After:=[a1], LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
    If rFind Is Nothing Then MsgBox "Suchbegriff nicht gefunden!": Exit Sub

    If Not rFind Is Nothing Then
       Adr1 = rFind.Address  '1. Addrese merken
       Do 'Text mit Zeilenumbrüche auflisten
          If LCase(Cells(rFind.Row, 3)) = "ja" Then
              n = n + 1   'gesamte Anzahl zählen
              rw = rFind.Row
              ProNr = Cells(rw, 2)
              Projekt = Cells(rw, 1)
              gesTxt = gesTxt & rw & ")  " & ProNr & "   " & Projekt & vbLf
          End If
          Set rFind = Cells.FindNext(rFind)
       Loop Until rFind.Address = Adr1
    End If

    'Fehlermeldung wenn Datensatz max. überschritten wird
    If n > DMax Then fmd = "** max. " & DMax & " sind angezeigt!"
    MsgBox n & "  gefundene Datensätze:     " & fmd & vbLf & gesTxt
Exit Sub
Fehler: MsgBox "unerwarteter Fehler im Suchlauf", vbInformation
End Sub
Top
#18
Hallo zusammen,

beide Lösungen haben geklappt ! Tausend Dank euch :)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste