Suchen und Sortieren
#11
(12.01.2016, 15:49)radagast schrieb: heje excelfreunde, heje brinkhoff,

also mich verwirren deine angaben mehr , als dass sie mit einander korrespondieren und sich helfend unterstützen. was ist, wenn in den spalten G bis M mehrere angaben vorhanden sind! was soll passieren wenn angaben nicht zutreffen, etc!

lege doch bitte ein beispiel (tabelle) vor, mit mehreren darstellungen, ohne große formelei...und erkläre diese.

Hallo Janosch,

in der Spalte "C" wird immer nur ein Wert aus den Spalten "G-M" pro Zeile auftauchen.
Und dann soll immer der Wert aus "G" genommen werden für alle Varianten der gleichen Zeile.

Beispiel: C5 enthält "FSM". Dies findet EXEL in H2 und übernimmt daher den Wert aus G2 in E5.

Kein Wert ist in Tabelle2 doppelt vorhanden.
Wenn in einer Zeile in Tabelle1 nichts gefunden wurde soll E einfach leer bleiben.

Danke im Voraus
Top
#12
Zitat:Wart mal Atilla,

da scheint doch noch was zu fehlen.

Hallo,

damit hat Zeus mich wieder zu den normal sterblichen geschickt. Wink

Denn mir ist jetzt nicht klar was Du möchtest. Ein Beispiel anhand Deiner Tabelle wäre hilfreich.

Muss jetzt aber sowieso weg, aber es sind genug andere Helfer unterwegs, die sogar kompetenter sind als ich.
Gruß Atilla
Top
#13
Hi,

ich glaube, so wird das nichts. Du solltest anhand deiner Mustertabelle exakt eintragen, welche Werte fix sind und dann in welchen Bereichen du welche Berechnung ausgeführt haben willst. Mir geht's wie Janosch, je mehr du (be)schreibst, desto wirrer wird es für mich.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#14
heje excelfreunde,

zeilenweise betrachtung:

in "C" befindet sich ein string mit bis zu sieben textteilen. 7 = Anzahl zellen "G" bis"M".
in "H" bis "M" können textteile vorhanden oder andere oder keine vorhanden sein und in "G" steht immer ein passendes textteil(????)

lösungsprinzip: oder-verknüpfung   

in oder("G" bis"M") steht ein(kein oder anderer) texteil, wenn in "C" textteil vorhanden, dann schreibe "G" nach "E" ansonst "".
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Top
#15
(12.01.2016, 17:28)radagast schrieb: heje excelfreunde,

zeilenweise betrachtung:

in "C" befindet sich ein string mit bis zu sieben textteilen. 7 = Anzahl zellen "G" bis"M".
in "H" bis "M" können textteile vorhanden oder andere oder keine vorhanden sein und in "G" steht immer ein passendes textteil(????)

lösungsprinzip: oder-verknüpfung   

in oder("G" bis"M") steht ein(kein oder anderer) texteil, wenn in "C" textteil vorhanden, dann schreibe "G" nach "E" ansonst "".

Das klingt schon sehr vielversprechend Janosch.
Erschwerend kommt nun noch hinzu, dass nicht nur Zeilenweise von "G" nach "E" übertragen werden soll, sondern sich Tabelle 1 auf mehrere Tausend Zeilen erstreckt und Tabelle 2 bei ca. 30 Zeilen bleibt.

Ich habe meine Tabelle nochmal mit Erläuterung versehen und Atillas Formel ist auch schon in "E".
Vielleicht hilft das ja.


Angehängte Dateien
.xlsx   Mappe3.xlsx (Größe: 13,12 KB / Downloads: 8)
Top
#16
Hallo,

ich versuch mal wiederzugeben, was ich jetzt verstehe:

In Tabelle1 wird Zeilenweise in Spalte C der erste String vor dem Leerzeichen, wenn kein Leerzeichen dann der String, in der gesamten Tabelle2 gesucht.
Ist die Suche erfolgreich, dann soll der Wert aus der gleichen Zeile der Spalte G in Spalte E eingetragen werden.

Deine eingestellten Tabellen zeigen diese Werte:

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFGHIJKLM
1BaugruppeModulgruppeBezeichnung1EinheitArbeitsplangruppe ArbeitsplangruppenProdukt 1Produkt 2Produkt 3Produkt 4Produkt 5Produkt 6
2302070SFSMS  FSRFSMTest 1    
389009STest 1S  HTS  test 2   
489002SFSR   125 X 500 MMSFSR SHTS     test 4
589003SHTS   125 X 625 MMSHTS HSR      
689020SFSM   250 X 375 MMSFSM SFH      
789022SIOT   250 X 625 MMSIOT IOT      
889023SIPO   250 X 750 MMSIPO IPT      
989038SBSH   375 X 375 MMS  IPO      
1089211SLSC   375 X 500 MMSLSC LCRLSC  Test 3  
11             
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Hier würde also nur noch ein Wert fehlen, in E2 müsste folgendes stehen:

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFGHIJKLM
1BaugruppeModulgruppeBezeichnung1EinheitArbeitsplangruppe ArbeitsplangruppenProdukt 1Produkt 2Produkt 3Produkt 4Produkt 5Produkt 6
2302070SFSMSFSR FSRFSMTest 1    
389009STest 1S  HTS  test 2   
489002SFSR   125 X 500 MMSFSR SHTS     test 4
589003SHTS   125 X 625 MMSHTS HSR      
689020SFSM   250 X 375 MMSFSM SFH      
789022SIOT   250 X 625 MMSIOT IOT      
889023SIPO   250 X 750 MMSIPO IPT      
989038SBSH   375 X 375 MMS  IPO      
1089211SLSC   375 X 500 MMSLSC LCRLSC  Test 3  
11             
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Wenn ich das so richtig verstanden habe, dann wird es mit Formeln eher schwierig bis nicht möglich sein.
Kannst Du VBA einsetzen? Wenn ja sind die eingestellten Tabellen genau an den Stellen wie eingestellt? Zeilen-Spalten sind identisch mit dem eingestellten Beispiel?
Gruß Atilla
Top
#17
Hallo Atilla,

deine Erläuterung passt (fast) genau.
Es fehlt der Wert bei E2 so wie du ihn eingetragen hast und der Wert bei E3 (Test 1; ebenfalls aus der Spalte mit Ergebnis "FSR".

ich habs fast befürchtet das Formeln hier nicht mehr reichen.

VBA sollte aber möglich sein.
Hab es hier noch nie probiert aber meine Arbeit hat recht hohe Priorität.
Daher kann ich im Bedarfsfall der IT Bescheid geben falls sie Sperren im Server haben diese für mich zu öffnen.

Die Tabellen sind identisch mit meiner Originaldatei. Sie heißen dort nur Tabelle 5 und 6 anstatt 1 und 2.
Und sind jeweils etwas länger.
Aber Spalten passen genau.
Top
#18
Hallo,

noch eine Frage:
Wie unterscheidet sich "Test 1" von den anderen Werten in Spalte C? Bei den anderen wird nach dem ersten Teilstring vor dem Leerzeichen gesucht und bei "Test 1" soll nach de gesamten String gesucht werden.
Könnte man sagen wenn zwei Teilstrings, dann nach dem gesamten String suchen sonst bei mehr als zwei nur nach den ersten???
Gruß Atilla
Top
#19
heje excelfreunde,

(1)

eine bitte an brinkhoff: definiere konstruktiv den stringaufbau in spalte "C". in deiner tabelle findet man:

zeile1 = FSM     => FSM    = textteil1 und keine weiteren textteile (Länge 3 Zeichen)
zeile2 = Text 1  => Text 1 = Textteil1 und keine weiteren textteile (Länge 5 Zeichen) oder
zeile2 = Text 1  => Text    = Textteil1, Leerzeichen = Textteil2, 1 =Textteil3 (Länge 5 Zeichen)
zeile3 = FSR 125 X 500 MM. ist hier FSR = Textteil1 oder oder oder

im moment sehe ich es so, dass die strings in spalte "C" aus Textteil(1) bis Texteil(n) mit leerzeichen bestehen und "scheinbar" nur der erste textteil = textteil 1 = FSR oder FSM aus drei zeichen bestehen. hier ist es nötig, dass brinkhoff die genaue struktur der strings aus spalte "C" liefert und erläutert.


(2)

in zeile 1 steht in spalte "C" = FSM und in den Spalten "G" = FSR, "H" = FSM und "I" = Test 1.
da nach brinkhoff spalte "C" mit den spalten "G" bis "M" abgeglichen werden soll, frage ich mich was soll in spalte "E" stehen, denn man findet in tabelle2/zeile1 mindesten zwei richtige antworten, aber welche davon gilt !!!!!! und bei vergleich über die gesamte tabelle2 werden sicherlich n lösungen existieren (siehe hierzu zeile 1 aus tabelle2)


(3)

gedankenexperiment:

nehme tabelle1 / spalte "C" / zeile(n) und vergleiche mit tabelle2/ Spalte "H" bis "M" / zeile(n), wenn in zeile(n) textteil(1) in "H" bis
"M" vorhanden (achtung, mehre lösungen möglich), dann nehme inhalte von "G" / zeile(n) und schreibe nach "E" / zeile (n).

hier ist brinkhoff gefordert, genau mitzuteilen (dezidierter tabellenausschnitt), so das man in der formelei weiter kommt
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Top
#20
Hallo,

unten ein Code, der das macht, was ich in meiner letzten Einlassung beschrieben habe:


Code:
Option Explicit

Sub suche()
 Dim lngZ As Long, i As Long
 Dim rngFound As Range
 lngZ = Cells(Rows.Count, 3).End(xlUp).Row
 Application.ScreenUpdating = False
 Range("E2:E" & lngZ).ClearContents
 For i = 2 To lngZ
   If Cells(i, 3) <> "" Then
     Set rngFound = Range("Tabelle6").Find(Cells(i, 3), lookat:=xlWhole)
     If Not rngFound Is Nothing Then
       Cells(i, 5) = Cells(rngFound.Row, 7)
     Else
       If UBound(Split(Cells(i, 3))) > 1 Then
         Set rngFound = Range("Tabelle6").Find(Split(Cells(i, 3))(0), lookat:=xlWhole)
         If Not rngFound Is Nothing Then
           Cells(i, 5) = Cells(rngFound.Row, 7)
         End If
       End If
     End If
   End If
 Next i
 Application.ScreenUpdating = True
End Sub

Bitte teste den Code in einer Kopie Deiner Datei!
Gruß Atilla
Top


Gehe zu:


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