Excel Suchfunktion
#21
Hallo,

und es geht doch:

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDE
1Name neuBedingung Name altErgebnis richtig
2ALDI Darmstadtaldi*darmstadt REWE FrankfurtREWE Frankfurt
3ALDI Frankfurtaldi*frankfurt ALDI GMBH + CO. KG//DARMSTADT/DE / ALDI SUED SAGT DANKEALDI Darmstadt
4LIDLlidl DANKE, IHR LIDL//Neustadt a/DE / DANKE, IHR LIDLLIDL
5REWE Frankfurtrewe*ffm REWE FrankfurtREWE Frankfurt
6REWE Frankfurtrewe*frankfurt DANKE, IHR LIDL//Neustadt a/DE / DANKE, IHR LIDLLIDL
7   ALDI GMBH + CO. KG//DARMSTADT/DE / ALDI SUED SAGT DANKEALDI Darmstadt
8   ALDI GMBH + CO. KG//DARMSTADT/DE / ALDI SUED SAGT DANKEALDI Darmstadt
9   ALDI GMBH + CO. FRANKFURT / ALDI SUED SAGT DANKEALDI Frankfurt

ZelleFormel
E2=INDEX(A:A;AGGREGAT(15;6;ZEILE($A$2:$A$6)/(ISTZAHL(SUCHEN(LINKS($B$2:$B$6;SUCHEN("~*";$B$2:$B$6&"*")-1);D2)))/(ISTZAHL(SUCHEN(TEIL($B$2:$B$6;SUCHEN("~*";$B$2:$B$6&"*")+1;99);D2)));1))
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg


@atilla :49:
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#22
Hallo,

das mit der Zunge zählt nicht mehr.
Ich hatte ja schon auf eine mögliche Arrayformel Lösung hingewiesen.
Aggregat wollte ich auch erwähnen, habe ich aber nicht, weil ich die Funktion nicht mag.
 
Das ist so wie Schaltgetriebe und Automatik.
Aber Du als Opa ziehst jetzt natürlich Automatik vor. :49:
Gruß Atilla
Top
#23
:28: :19:
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#24
Beide Lösungen funktionieren klasse!

Mal eine andere Frage:
Ich will ein Makro schreiben, mit dem ich eine andere Excel Datei auswählen kann und von dort aus einen Bereich in meine eigentliche Excel kopiere.
wie gehe ich da am besten vor?

Danke!
Top
#25
Hi,

(24.02.2017, 11:56)clippers41 schrieb: Mal eine andere Frage:
Ich will ein Makro schreiben, mit dem ich eine andere Excel Datei auswählen kann und von dort aus einen Bereich in meine eigentliche Excel kopiere.
wie gehe ich da am besten vor?

damit Du am meisten lernst:
  1. zeichne diese Vorgänge in einem Makro mit dem Makrorekorder auf,
  2. poste das erstellte Makro hier im Forum und
  3. schaue Dir dann den durch die Helfer geänderten (Ballast entfernt, verallgemeinert) Code im Vergleich an.
Top
#26
Ich kann das Makro ja nicht aufzeichnen, es soll ja eine eigene Datei auswählen.
Code:
Sub ImportData()
 Dim Var As Variant
 Dim wks As Worksheet
 Dim csvPath As String
 
 Var = Application.GetOpenFilename("Excel Dateien (*.csv),*.csv", 1, "XLS-Import wählen", , False)
 If Var <> False Then
   Set wks = Workbooks.Open(Var).Sheets(1)
   csvPath = Left(ActiveWorkbook.FullName, Len(ActiveWorkbook.FullName) - 3) & "xls"
   Application.DisplayAlerts = False
   ActiveWorkbook.SaveAs Filename:=csvPath, FileFormat:=xlWorkbookDefault, Local:=True
   Application.DisplayAlerts = True
   wks.Parent.Close False
 End If
End Sub

Diese Sub soll ein CSV importieren und es als XLS speichern, da VBA CSV nicht ohne Trennzeichen öffnen kann.
Gibt es dafür eine bessere Methode?
Top
#27
Hallo Clippers,

das mit dem Aufzeichnen nicht immer alles geht, ist schon klar. Wir können dann aber den Code überarbeiten. Aus dem aufgezeichneten Code können wir zumindest einige Informationen entnehmen und sparen natürlich auch etwas Programmierzeit.

Ich denke, dass Dein geposteter Code schon ganz gut ist. Ich würde lediglich überlegen, ob die Ausgabe als xls wirklich nötig ist und nicht besser xlsx genommen werden sollte.

Du wolltest ja neben der Auswahl einer Datei auch noch das Kopieren von Daten. Bei einer Aufzeichnung hätte man das sicher 1:1 übernehmen können, zumindest, wenn Du komplette Spalten kopierst oder einen festen Bereich. Man würde sehen, was Du kopierst und wohin.
Wenn Du einen flexiblen Bereich kopieren willst, z.B. je nach vorhandenen Daten, müsste man wieder anpassen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


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