online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon warmuzko vom 01.02.2021, 01:04 Options

Excelliste mit Vorwahlen Vergleichen

Huhu, ich hab da eine für mich ziemlich wichtige frage:

ich hab ein erstes tabellenblatt, in dem viele vorwahlen stehn. die vorwahlen haben unterschiedlich viele stellen. und den vorwahlen wiederum werden gebiete zugeordnet. die vorwahlen stehen ohne führende 0 (also z.b. statt 030 -> 30)

im zweiten tabellenblatt muss ich die telefonrechnungen von mienem chef analysieren. dazu gebe ich die gewählten rufnummern mit vorwahlen in einer!! spalte ein und möchte, dass aus dem ersten tabellenblatt die vorwahl erkannt wird und das dazugehörige gebiet im zweiten tabellenblatt angezeigt wird.

Tabellenblatt 1:

A3:A50 = Vorwahlen ohne führende 0
B3:B50 = Gebiete

Tabellenblatt 2:
B3:B50 = hier wird die komplette nummer ohne führende 0 und leerzeichen hintereinander weg eingegeben

D3:D50 = hier soll das gebiet angezeigt werden, also muss dort die formel rein


ich habe absolut keine ahnung wie ich das bewerkstelligen soll, eine beschreibung der formel würde mir ungemein helfen, damit ich weiß was wozu dient in der formel...

vielen dank schon im vorraus


Antwort schreiben

Antwort 1 von rainberg vom 01.02.2021, 08:06 Options

Hallo,

da brauchst Du wahrscheinlich eine VBA-Lösung.

Habe mal eine Formel gebastelt, die für 2 bis 5-stellige Vorwahlen funktioniert, wenn... nicht zufällig z.B. eine 2-stellige Vorwahl mit den ersten 3 Stellen der Telefonnummer, auch eine vorhandene 5-stellige Vorwahl ergibt.

=INDEX(Tabelle1!B$3:B$50;WENN(NICHT(ISTNV(VERGLEICH(LINKS(B3;5)*1;Tabelle1!A$3:A$50;0)));VERGLEICH(LINKS(B3;5)*1;Tabelle1!A$3:A$50;0);WENN(NICHT(ISTNV(VERGLEICH(LINKS(B3;4)*1;Tabelle1!A$3:A$50;0)));VERGLEICH(LINKS(B3;4)*1;Tabelle1!A$3:A$50;0);WENN(NICHT(ISTNV(VERGLEICH(LINKS(B3;3)*1;Tabelle1!A$3:A$50;0)));VERGLEICH(LINKS(B3;3)*1;Tabelle1!A$3:A$50;0);WENN(NICHT(ISTNV(VERGLEICH(LINKS(B3;2)*1;Tabelle1!A$3:A$50;0)));VERGLEICH(LINKS(B3;2)*1;Tabelle1!A$3:A$50;0);"")))))

Teste mal selbst.

Eine voll funktionierende Formel kann man nur erstellen wenn in Tabelle2 ein Trennzeichen zwischen Vorwahl und Nummer eingefügt wird.

Gruß
Rainer

Antwort 2 von nighty vom 01.02.2021, 10:29 Options

hi all

sind denn makros erlaubt ?

gruss nighty

Antwort 3 von nighty vom 01.02.2021, 10:31 Options

hi all

falls makros erlaubt sind,was waere dann erwuenscht,eine function oder ein makro

function waere wie eine formel zu handhaben

makro waere aufzurufen und wuerde die tel liste in einem rutsch befuellen

gruss nighty

Antwort 4 von warmuzko vom 01.02.2021, 12:05 Options

jhuhu, gewünscht wäre eine funktion... Die vorwahlen haben immer verschieden viele stellen, dass muss berücksichtigt werden. ich weiß in dem moment wo ich die telefonnummern eingebe leider nicht was ist vorwahl und was nicht.

lg

Antwort 5 von nighty vom 01.02.2021, 14:45 Options

hi all ^^

wie gewuenscht

gruss nighty

nach deinen angaben waere das ein beispiel

1 bereichsangabe vorwahlen von tab1
2 bereichsangabe orte tab1
3 bereichsangabe nummer tab2

Function OrtAusgabe(SuchBereich As Range, AusgabeBereich As Range, QuellenAngabe As Range) As String
    Application.Volatile
    Dim zelle As Range
    For Each zelle In SuchBereich
        If zelle = Mid(QuellenAngabe, 1, Len(zelle)) Then
            OrtAusgabe = Cells(zelle.Row - 1, AusgabeBereich.Column)
            Exit For
        End If
    Next zelle
End Function

Antwort 6 von nighty vom 01.02.2021, 15:21 Options

hi all

ich wusste es doch ^^

hier korrigiert und immer noch fehlerhaft

da noch eine sheet angabe vorhanden ist

bin noch am ueberlen bzw wer ideen hat ohne zusaetzliche parameter,immer raus damit :-))

Function OrtAusgabe(SuchBereich As Range, AusgabeBereich As Range, QuellenAngabe As Range) As String
    Application.Volatile
    Dim zelle As Range
    For Each zelle In SuchBereich
        If zelle = Val(Mid(QuellenAngabe, 1, Len(zelle))) Then
            OrtAusgabe = Sheets(1).Cells(zelle.Row, AusgabeBereich.Column)
            Exit For
        End If
    Next zelle
End Function

Antwort 7 von rainberg vom 01.02.2021, 16:06 Options

Hallo nighty,

die Funktion rechnet genau so falsch wie meine Formel, wenn das zutrifft, wie ich oben beschrieben habe.

Gruß
Rainer

Antwort 8 von nighty vom 01.02.2021, 16:14 Options

hallo rainer ^^

meinst du diese problem ?

30123
3012345

was haelst davon wenn wir dann immer die zahl nehmen die von dem stellenwert am hoechsten ist ?

gruss nighty

Antwort 9 von rainberg vom 01.02.2021, 16:41 Options

Hallo nighty,

Zitat:
was haelst davon wenn wir dann immer die zahl nehmen die von dem stellenwert am hoechsten ist ?

...das wir nicht viel nützen.

Beispiel:

Tabelle 1

VW_____Ort
37______Musterstadt
37297___Musterdorf

Tabelle2

gemeinsame. Nr
3729723456 (37297=VW; 23456=Tel-Nr.)
3729754 (37=VW; 29754=Tel-Nr.)

In beiden Fällen ist das Ergebnis "Musterdorf" obwohl die zweite Suche "Musterstadt" ergeben müsste.

Ich wage fast zu behaupten, ohne Trennzeichen ist auch mit VBA nichts zu machen.
Kannst ja mal weiter tüffteln, vielleicht habe ich nicht recht.

Gruß
Rainer

Antwort 10 von nighty vom 01.02.2021, 16:57 Options

hi rainer ^^

ichglaub auch das es ohne neue bezugspunkte keine loesung gibt dafuer :-(

gruss nighty

meine letzte variante

Function OrtAusgabe(SuchBereich As Range, AusgabeBereich As Range, QuellenAngabe As Range) As String
    Application.Volatile
    Dim zelle As Range
    For Each zelle In SuchBereich
        If zelle = Val(Mid(QuellenAngabe, 1, Len(zelle))) Or Len(Sheets(1).Cells(zelle.Row, AusgabeBereich.Column)) > Len(OrtAusgabe) Then
            OrtAusgabe = SuchBereich.Parent.Cells(zelle.Row, AusgabeBereich.Column)
            End If
    Next zelle
End Function


Rem =OrtAusgabe(Tabelle1!A2:A4;Tabelle1!B2:B4;Tabelle2!A2)

Antwort 11 von nighty vom 01.02.2021, 17:05 Options

hi rainer ^^

als weitere angabe muesste man entweder eine einheitliche stellenwertlaenge der vorwahl oder telefinnummer wissen dann waere es loesbar ,aber die sind ja keiner norm entsprechend :-(

gruss nighty

Antwort 12 von da_manuu vom 01.02.2021, 17:22 Options

wie wäre es mit einem SVERWEIS, müsste doch auch funktionieren?

gruß

Antwort 13 von rainberg vom 01.02.2021, 17:23 Options

Hallo zusammen,

nach meiner Meinung gibt es nur eine Lösung, man muss dem Makro oder der Formel sagen können, wo endet die Vorwahl oder wo beginnt die Tel-Nr., dann ist es mit beiden Tools leicht lösbar.

Gruß
Rainer

Antwort 14 von rainberg vom 01.02.2021, 17:29 Options

@ da mannu

hast zwar keine konkrete Formel geboten, aber diese würde genau den gleichen Fehlern unterliegen wie meine obige Formel, da man eben keine Möglichkeit hat das Suchkriterium auf die richtige Länge zu bringen.

Gruß
Rainer

Antwort 15 von sigiru vom 01.02.2021, 19:11 Options

Hallo zusammen,

wie läuft das denn eigentlich bei der Vermittlung des Gesprächs - da gibt man ja auch kein Trennzeichen nach der Vorwahl ein. Also muss die gesamte Nummer doch eindeutig sein.

Ich denke es ist nur die Frage, ob bei der Gesprächsvermittlung erst die kurzen Vorwahlen geprüft werden, und bei Nicht-Übereinstimmung dann die längeren oder umgekehrt. Wenn das jemand weiß, müsste man es bei der Formel oder dem Makro dann nur genauso machen.

Beispiel: 30123456

Wenn erst mit den zweistelligen Nummern verglichen wird und bei Eingabe 30 schon eine Übereinstimmung mit der Vorwahl-Liste gefunden wird, wird der Rest als Telefon-Nr. angesehen (123456).

o d e r

wird z. B. erst nach der 5-stelligen Vorwahl 30123 gesucht, und nur wenn diese nicht gefunden wird, wird immer eine Ziffer weniger verglichen (also 3012, dann 301, und zuletzt 30)?

Werden vielleicht in größeren Orten (z. B. 30) die Anfangsziffern der Telefon-Nr. (z. B. 123...), die die gesamte Nummer fälschlicherweise als Vorwahl eines kleineren Ortes (z. B. 30123) erscheinen lassen würden, gar nicht vergeben? Dann wäre die Vorwahl doch immer eindeutig erkennbar und es wäre egal, ob man erst die kurzen oder langen Vorwahlen prüft.

Gruß sigiru

Antwort 16 von warmuzko vom 01.02.2021, 21:57 Options

Huhu, vielen dank für die zahlreichen antworten, mit vba hab ich gar keine ahnung, hab ich noch nie mit gearbeitet.

ein trennzeichen nach vorwahl lässt sich schwierig realisieren, wenn ich die gewählte nummer anschaue und eingebe, weiß ich nicht was ist vorwahl und was der rest. es geht dabei vor allem um internationale rufnummern, anrufe nach russland, spanien etc... da kommen so einige verschiedene längen für die vorwahl raus.

anhand dieser muss halt geschaut werden wohin ging der anruf.

den post von sigiru finde ich sehr wichtig. erst prüfen gibt es bei zwei stellen einen treffer, bei drei stellen etc...


kann man hier eigentlich auch irgendwie datein ranhängen, dann würde ich einfach mal das was ich hier schon habe veröffentlichen... ist dann allerdings nicht ein reales beispielo, die realen daten sind auf arbeit ;)

Antwort 17 von rainberg vom 01.02.2021, 22:40 Options

Hallo warmuzko,

Zitat:
den post von sigiru finde ich sehr wichtig. erst prüfen gibt es bei zwei stellen einen treffer, bei drei stellen etc...


gerade das halte ich für falsch und habe es bereits in meiner AW9 versucht zu erklären.

Übrigens, hast Du denn überhaupt schon mal meine Formel und die Funktion von @nighty auf Deine Daten losgelassen und die Ergebnisse getestet?

Leider kann ich zu keiner anderen Lösung beitragen, da ich immer noch der Meinung bin, dass es ohne Trennungszeichen, keine gibt.

Lasse mich aber gerne mit einer perfekten Lösung überraschen.

Gruß
Rainer

Antwort 18 von warmuzko vom 02.02.2021, 00:07 Options

naja, da ich von vba keine ahnung habe ist das was ihr mir da geschrieben habt bahnhof... für mich.,.

http://www.speedshare.org/download.php?id=93C429CA13

hier habe ich mal mein bisheriges ergebnis... vielleicht ist das dann etwas anschaulicher

vg

Antwort 19 von nighty vom 02.02.2021, 08:40 Options

hi warmuzko :-)

du kannsst rainer seine formel oder meine function nutzen,es ist ein kleines risiko einer verwechslung und die wahrscheinlichkeit recht gering

gruss nighty

Antwort 20 von nighty vom 02.02.2021, 08:51 Options

hi all ^^

oder man erfasst alle doppelten und befuellt eine liste ,anhand dieser dann eine auswahl erfolgt

da waere dann aber nur ein makro einsetzbar und muesste haendich gestartet werden

gruss nighty

Ähnliche Themen

Tabellen vergleichen
riro  27.08.2007 - 12 Hits - 1 Antwort

Zelleneinträge vergleichen
Uwe2  02.10.2007 - 91 Hits - 5 Antworten

Excelliste mit Hyperlinks
donjuandan  10.10.2007 - 75 Hits - 7 Antworten

Excelliste: Mehreren Zeilen in Spalten umwandeln
MarioS  20.11.2007 - 96 Hits - 7 Antworten

vergleichen
offi  23.04.2008 - 89 Hits - 5 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 09:21:55 2026