Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Funktion WENN mit SUCHE und SVERWEIS kombinieren ?

Mitglied: Shaggy84

Shaggy84 (Level 1) - Jetzt verbinden

16.03.2007, aktualisiert 14:50 Uhr, 9264 Aufrufe, 4 Kommentare

Hallo allesamt,


ich habe ein Problem mit einer SUCHE Funktion. Ich habe einfach erzählt zwei Tabellenblätter.

In Tabellenblatt 1 gibt es eine erste Spalte A mit Namen, z.B. "Oracle-xyz" oder "test-SQL" oder "maxdbirgendwas".

Daneben eine Spalte B in die die Formel hineinsoll und einen Ausgabewert gibt.

In Tabellenblatt 2 gibt es ebenfalls zwei Spalten. In der ersten A steht "Oracle", "Sql", "Maxdb" und in der Spalte B daneben ein Code der passend in die Spalte B vom ersten Tabellenblatt hineinsoll. Falls er den Wert nicht findet soll er einen bestimmten anderen ausgeben z.B. A23.

Er soll also nach einem Teil des Namens suchen und wenn er den findet, den Wert der danebenliegenden Spalte ausgeben.

Ich habe jetzt schon mehrere möglichkeiten mit SVERWEIS, SUCHE, WENN und ODER durchgegangen, kam aber nie zu dem gewünschten Ergebnis. Manche Werte werden immer #WERT. Natürlich habe ich $ Zeichen gesetzt

Gruß, Shaggy
Mitglied: bastla
16.03.2007 um 12:21 Uhr
Hallo Shaggy84!

Versuch es mit folgendem VBA-Code (in ein Modul platzieren):
01.
Function TEILVERWEIS(Suchkriterium As Variant, Matrix As Range, Spaltenindex As Integer) As Variant 
02.
Dim Ergebnis As Variant, Key As Variant 
03.
Dim Z As Integer, S As Integer 
04.
Dim i As Integer, found As Boolean 
05.
If Spaltenindex > Matrix.Columns.Count Then 
06.
    'Spaltennummer außerhalb des übergebenen Bereichs 
07.
    TeilVerweis = 0 / 0 
08.
    Exit Function 
09.
End If 
10.
Application.Volatile 
11.
Ergebnis = "" 
12.
found = False 
13.
Z = Matrix.Row 
14.
S = Matrix.Column 
15.
For i = Z To Z + Matrix.Rows.Count - 1 
16.
    Key = Matrix.Parent.Cells(i, S).Value 
17.
    If LCase(Left(Suchkriterium, Len(Key))) = LCase(Key) Then 
18.
        Ergebnis = Matrix.Parent.Cells(i, S + Spaltenindex - 1).Value 
19.
        found = True 
20.
        Exit For 
21.
    End If 
22.
Next 
23.
If found Then 
24.
    TeilVerweis = Ergebnis 
25.
Else 
26.
    TeilVerweis = 0 / 0 
27.
End If 
28.
End Function
Die Fehlerbehandlung ist noch verbesserungswürdig, aber im Prinzip sollte es so funktionieren:
01.
=TEILVERWEIS(A3;Tabelle2!$A$2:$B$30;2)
Es wird immer nur überprüft, ob ein Eintrag in der ersten Spalte der Matrix dem Anfang des Suchkriteriums entspricht (Groß-/Kleinschreibung wird nicht beachtet).

Wird ein zu hoher Spaltenindex übergeben (also im Beispiel oben etwa 4 bei nur 2 markierten Spalten), liefert die Funktion den Fehler "#WERT".

Der gleiche Fehler wird (anstelle von "#NV") zurückgegeben, wenn das Suchkriterium nicht gefunden wurde.

Grüße
bastla
Bitte warten ..
Mitglied: Shaggy84
16.03.2007 um 13:04 Uhr
Hallo bastla,

bist ja unermüdlich

Also dein Code funktioniert soweit sehr gut, aber löst mein Problem leider noch nicht, da das Namensteilstück ja auch mittendrin oder am Ende stehen kann und nicht nur am Anfang.

Außerdem benötige ich noch einen Wert (aus einer Zelle), der Angezeigt wird, wenn er nichts davon finden kann.

Gruß, Gregor
Bitte warten ..
Mitglied: bastla
16.03.2007 um 13:19 Uhr
Hallo Shaggy84!

Stimmt, Du hattest Teil des Namens geschrieben ...

Na gut, dann so:
01.
Function TeilVerweis(Suchkriterium As Variant, Matrix As Range, Spaltenindex As Integer, Alternative As Range) As Variant 
02.
Dim Ergebnis As Variant, Key As Variant 
03.
Dim Z As Integer, S As Integer 
04.
Dim i As Integer, found As Boolean 
05.
If Spaltenindex > Matrix.Columns.Count Then 
06.
    'Spaltennummer außerhalb des übergebenen Bereichs 
07.
    TeilVerweis = 0 / 0 
08.
    Exit Function 
09.
End If 
10.
Application.Volatile 
11.
Ergebnis = "" 
12.
found = False 
13.
Z = Matrix.Row 
14.
S = Matrix.Column 
15.
For i = Z To Z + Matrix.Rows.Count - 1 
16.
    Key = Matrix.Parent.Cells(i, S).Value 
17.
    If InStr(LCase(Suchkriterium), LCase(Key)) Then 
18.
        Ergebnis = Matrix.Parent.Cells(i, S + Spaltenindex - 1).Value 
19.
        found = True 
20.
        Exit For 
21.
    End If 
22.
Next 
23.
If found Then 
24.
    TeilVerweis = Ergebnis 
25.
Else 
26.
    TeilVerweis = Alternative.Value 
27.
End If 
28.
End Function
Aufruf jetzt:
01.
=TEILVERWEIS(A3;Tabelle2!$A$2:$B$30;2;$A$23)
also zusätzlich mit Angabe der "Alternativzelle".

Grüße
bastla
Bitte warten ..
Mitglied: Shaggy84
16.03.2007 um 14:50 Uhr
Hey bastla,

das funktioniert perfekt. Auf Leute wie dich ist Verlass

Vielen Dank!
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

Excel Sverweis mit Funktion Rechts() kombinieren

gelöst Frage von crinaXMicrosoft Office1 Kommentar

Edit: Hat sich alles erledigt. Guten Tag liebe Community, ich habe ein kleines Problem. Um das ganze mal zu ...

Microsoft Office

Funktion SVERWEIS mit Excel

Frage von HevidarMicrosoft Office2 Kommentare

Hallo, Ich möchte mit Hilfe der Funktion SVERWEIS die Noten berechnen lassen. Leider klappt es nicht richtig. 1+ 15 1 14 ...

VB for Applications

Sverweis nach ID suchen

gelöst Frage von 123660VB for Applications2 Kommentare

Hallo Leute, Ich hoffe ihr könnt mir weiter helfen Ich habe 2 Tabellen die fast identisch sind, einziges unterschied ...

Microsoft Office

Sverweis Suche und dann Daten aus anderer Tabelle nehmen

gelöst Frage von blacksunMicrosoft Office7 Kommentare

Hallo, ich habe folgende Tabellen (Beispiele): Mastertabelle Jeden Monat habe ich neue Tabelle: Ziel soll es sein, dass mit ...

Neue Wissensbeiträge
Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 17 StundenHumor (lol)1 Kommentar

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 19 StundenExchange Server6 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 1 TagErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 2 TagenVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Heiß diskutierte Inhalte
Windows Server
Domäne einsilbig mit nur einem Namen benannt - sowie AD und MX auf einer VM Kardinalsfehler?
Frage von TomTestWindows Server48 Kommentare

Hallo liebe Freunde gepflegter Probleme, seit kurzem soll ich eine Domäne verwalten die zuvor von einem IT-Dienstleister erstellt und ...

Microsoft
VPN Verbindung kann nicht aufgebaut werden
Frage von AlexderITlerMicrosoft35 Kommentare

Hallo, Ich möchte an einem unserer PCs in unserer Tochterfirma eine VPN zu unserem Netzwerk einrichten. Das schlägt allerdings ...

DNS
Gibt es eine Art DNS Proxy?
Frage von icepietDNS16 Kommentare

Hallo Nerds, Ich würde gerne folgendes machen: ts.domain.de:3389 soll auf 1.2.3.4:3389 auflösen ts2.domain.de:3389 soll auf 1.2.3.4:3390 auflösen Gibt es ...

Windows Server
Windows Server per Web auf Daten zugreifen und verwalten
Frage von matze2090Windows Server16 Kommentare

Hallo, ich würde gerne von außen auf meinem Windows Server zugreifen um auf meine Daten zu verwalten. Meine frage ...