dipps
Goto Top

Excel aus 96 zeilen einen text auslesen

Excel aus 96 zeilen einen text auslesen

Hallo

ich habe eine Excel Tabelle wo 96 zeilen sind in diesen 96 zeilen ist zufäälig (selbe Spalte immer) immer wo anders der Text (ist so gewollt) am Ende der Zeilen in der selben Spalte soll Angezeigt werden welcher Text in der Spalt angezeigt wird damit man nicht suchen muss. Kennt jemand dafür eine funktion?

Content-ID: 69676

Url: https://administrator.de/contentid/69676

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

hansolo99
hansolo99 27.09.2007 um 16:10:16 Uhr
Goto Top
Eine Beispiel-Zeile wäre nicht schlecht...
Gruß
bastla
bastla 27.09.2007 um 17:32:58 Uhr
Goto Top
Hallo Dipps!

Nach Deiner Beschreibung würde doch eigentlich etwas in der Art genügen:
=WENN(B2="GesuchterText";B2;"")  
Der Formel liegt die Annahme zugrunde, dass Deine Daten in Zeile 2 beginnen und der ominöse Text immer in Spalte B steht.

Einfach die Formel in der Spalte nach dem "Ende der Zeilen" in Zeile 2 eingeben und dann für alle 96 Zeilen nach unten kopieren ...

Im Übrigen schließe ich mich dem Vorschlag von hansolo99 an.

Grüße
bastla
Dipps
Dipps 27.09.2007 um 18:26:34 Uhr
Goto Top
Also Bsp.:

A | B | C | D | E | ...
P1 | | | | |
| | | | |
| 14 | | | |
P1 | 20 | P1 | 20 | |
P2 | | | | |
| 10 | | | |

am Ende soll das Erscheinen
| | P1 | 20 | |

Wobei P1 20 auch was anderes sein könnte es muss nicht immer das sein C und D füllt er nur wenn in der zeile A und B mit inhalt gefüllt sind und das kommt alle fälle nur einmal vor und ich will durch eine sogenannte summe erausfinden welche Kombination es ist
bastla
bastla 27.09.2007 um 18:40:05 Uhr
Goto Top
Hallo Dipps!

Auch wenn Du Dir (hoffentlich) die Mühe machen wirst, Dir Formatierungen in den Beiträgen anzusehen und Deinen Kommentar dementsprechend zu überarbeiten, zweifle ich daran, dass ich das dargestellte Beispiel richtig werde interpretieren können.

Wonach sollte eigentlich gesucht werden ("P1" kommt insgesamt dreimal vor, zweimal davon in Kombination mit dem Wert "20" - welches Vorkommen soll gefunden werden, insb, da ich Deinem Eingangsposting entnommen hätte, dass sich der gesuchte Text immer in der gleichen Spalte befände), und welches "Ende" zur Darstellung des Ergebnisses meinst Du (unten oder rechts)?

Grüße
bastla
Biber
Biber 27.09.2007 um 20:48:41 Uhr
Goto Top
Gemeint ist vielleicht eine Tabelle dieser Art:

A B C D E
P1
14
P1 20 P1 20
P2
10

am Ende soll das Erscheinen
P1 20

siehe Formatierungen in den Beiträgen

Gruß
Biber
bastla
bastla 27.09.2007 um 20:53:34 Uhr
Goto Top
@Biber

Eigentlich hatte ich die entsprechende "Mühe" nicht Dir zugedacht ...

Grüße
bastla
Biber
Biber 27.09.2007 um 22:54:42 Uhr
Goto Top
So, Dipps,

aus 96 Zeilen Excel einen Text auslesen kann doch nicht so schwer sein wie aus den drei Zeilen Deiner Beitragsformulierung eine Frage herauszufiltern.
Die drei Zeilen habe ich jetzt auch 32x gelesen.... 3x32 macht 96...alles dreht sich...

Deshalb also Gegenfrage:
Gehen wir Recht in der Annahme, dass Du...
  • wenn in der Tabellenzeile die Spalte A gefüllt ist UND in der Tabellenzeile die Spalte B gefüllt ist
  • dann irgendwo die Inhalte der Spalten C und D dieser Zeile angezeigt haben möchtest?
  • oder sollen die Zellen in C und D rot hinterlegt werden
  • oder in derselben Zeile weiter rechts etwas hingeschrieben werden?

Oder ist das eine zu freizügige Interpretation von "..will durch eine sogenannte summe erausfinden welche Kombination es ist..".

"sogenannte Summe".....ob das jemand außer uns so nennt..? *grmffffff

Grüße
Biber
Dipps
Dipps 28.09.2007 um 06:18:56 Uhr
Goto Top
dein Grundsatz ist Richtig aber in der Spalt C und D steht nur einmal eine kombie drin und da diese ja weit unten sein könnte soll eine andere Zelle bezug nehmen und den Text anzeigen aus der jeweiligen Tabelle
hansolo99
hansolo99 28.09.2007 um 08:26:52 Uhr
Goto Top
Also ich versteh nur Bahnhof.
Ich denke dass aus diesen Gründen viele IT-Projekte scheitern, weil die Definition/Erklärung des Problems, das Deutsch, die Rechtschreibung und die Satzbauweise einfach mangelhaft sind.
Dipps
Dipps 01.10.2007 um 08:02:29 Uhr
Goto Top
So nochmal für alle

Zeile A B C D E
5P1
6
7 14
8P1 20 P1 20
9P2
10 10
11 24
...
112 Ergebniss : P120
das erstscheint unter dessen wobei nur eine zeile in der spalte C und D gefüllt ist und ich am ende herausfinden will welche von den 96 zeilen geüllt ist und er soll mir den jeweilen text immer ausgeben so das ich nicht scrollen muss um die zeile zu suchen. In zeile 112 in Spalte C soll mir der Text ausgegeben werden der in der Spalte steht bei mir im Bsp.: jetzt zeile 8 und das selbe noch mal für Spalte E
8644
8644 01.10.2007 um 08:36:16 Uhr
Goto Top
Moin,

ist ja wirklich heftig! Für den unwahrscheinlichen Fall, dass ich die Aufgabe richtig verstanden habe, würde ich jetzt mal auf den Autofilter hinweisen (Nichtleere).

Psycho
bastla
bastla 01.10.2007 um 09:47:20 Uhr
Goto Top
Hallo Dipps!

Nicht, dass ich es inzwischen verstanden hätte, aber um dem Ganzen vielleicht ein Ende machen zu können:
=INDEX(C5:C100;VERGLEICH("";$C5:$C100;-1))  
=INDEX(D5:D100;VERGLEICH("";$C5:$C100;-1))  
=INDEX(E5:E100;VERGLEICH("";$C5:$C100;-1))  
oder (für Spalte E) alternativ:
=INDEX(E5:E100;VERGLEICH("";$E5:$E100;-1))  

Grüße
bastla
Biber
Biber 01.10.2007 um 10:27:36 Uhr
Goto Top
@bastla

>aber um dem Ganzen vielleicht ein Ende machen zu können...

Dazu wäre auch mir fast jedes Mittel Recht, z. B. eine Arryformel in C112
=INDIREKT(ADRESSE(KKLEINSTE(WENN(C5:C111<>"";ZEILE(5:111));1);1))  

Mit SHIFT-STRG-RETURN abschicken.
In Feld D112 analog.

Grüße
Biber
Dipps
Dipps 01.10.2007 um 14:03:52 Uhr
Goto Top
na das ging noch nicht so richtig habe es aber jetzt anders gemacht.

ZeileABC D E F G H I
1
2Hostname SAN3
3Port B0
4 Start SP Über ÜP Ziel ZP
5 SAN3 B0
6
7
8
9 P1 1 SAN3 A1
10 P1 2 SAN3 B0
11 P1 3 SMUL...1 HBA2
12 P1 4 SMUL...2 HBA1
13 P1 5 SMUL...3 HBA2
14 P1 6 FORST...1 HBA1
...
33P124SAN SW3 31
33P1.11SAN SW4 5
34P1.12SAN SW4 6
35P1.13SAN SW4 7
...
103P2.1230 0
104P2.124SAN SW4 30

So ist jetzt die Tabelle wobei man B2 und B3 verändern kann und in D5 und E5 wird es wieder verändert so das in den beiden zellen das selbe steht (D5=B2 und E5=B3) Als nächstest soll herausgefunden werden wo es unten in der langen Tabelle sthet und (kann nur einmal drin sein) und es soll dann der wert aus der zeile und spalte B (bsp.: P1) in F5 übertragen werden und der wert aus Spalte C in G5.

Das ist es wie es nun sein soll.
bloß wie kann ich das vergleiochen und dann in die zwei zellen bekommen?
Dipps
Dipps 01.10.2007 um 16:01:04 Uhr
Goto Top
Wenn ihr wollt stelle ich euch auch mal die excel liste zur verfügung
bastla
bastla 01.10.2007 um 22:06:32 Uhr
Goto Top
Hallo Dipps!

es soll dann der wert aus der zeile und spalte B (bsp.: P1) in F5 übertragen werden und der wert aus Spalte C in G5.
Ich hätte ja eher angenommen, dass die Werte aus den Spalten A und B (und nicht aus B und C) übertragen werden sollen, und dies auch so im unten stehenden VBA-Entwurf umgesetzt. Sollte ich mich geirrt haben, einfach aES = Array(1, 2) auf aES = Array(2, 3) ändern.

Für alle übrigen Angaben habe ich mich an Dein Beispiel gehalten. Sollte sich die Struktur des Tabellenblattes ändern, sind die entsprechenden Zeilen anzupassen:
Sub Such()

'Datenzeilen: 9 bis 104  
Const DABZL As Integer = 9 '##### anpassen #####  
Const DBISZL As Integer = 104 '##### anpassen #####  

'Suchspalten  
aSP = Array(3, 4) 'in Spalten C (3) und D (4) suchen '##### anpassen #####  
iASP = UBound(aSP)

'Suchkriterien ab Zelle D5  
Const KABSP As Integer = 4 'Spalte D '##### anpassen #####  
Const KABZL As Integer = 5 'Zeile 5 '##### anpassen #####  

aK = Range(Cells(KABZL, KABSP), Cells(KABZL, KABSP + iASP))

'Ergebnisspalten  
aES = Array(1, 2) 'Werte aus Spalten A (1) und B (2) als Ergebnisse eintragen '##### anpassen #####  
iAES = UBound(aES)

'Ergebnis eintragen ab Zelle F5  
Const EABSP As Integer = 6 'Spalte F '##### anpassen #####  
Const EABZL As Integer = 5 'Zeile 5 '##### anpassen #####  

'Ergebniszellen löschen  
For c = 0 To iAES
    Cells(EABZL, EABSP + c).ClearContents
Next

For r = DABZL To DBISZL
    blnFound = True
    For i = 0 To iASP
        If Trim(Cells(r, aSP(i))) <> aK(1, i + 1) Then
            blnFound = False
            Exit For
        End If
    Next
    
    If blnFound Then
        For i = 0 To iAES
            Cells(EABZL, EABSP + i).Value = Cells(r, aES(i)).Value
        Next
    End If
Next
End Sub
Zur Verwendung: Wenn Du im Tabellenblatt mit der rechten Maustaste auf das zugehörige Blattregister (zB "Tabelle1") klickst, kannst Du aus dem Kontextmenü "Code anzeigen" wählen. In das nun angezeigte große Codefenster ist der obige Code einzufügen (und danach bei Bedarf anzupassen - siehe oben).

Starten kannst Du das VBA-Programm aus dem Tabellenblatt wie ein aufgezeichnetes Makro, zB über "Extras / Makro / Makros... / Tabellenname.Such" oder etwa über Klick auf eine in das Tabellenblatt eingefügte Grafik (Autoform), der Du per Kontextmenü mit "Makro zuweisen..." das VBA-Programm zugeordnet hast.

Grüße
bastla
Dipps
Dipps 02.10.2007 um 06:29:41 Uhr
Goto Top
Danke schön für dein Script ich habe unterdessen auch eine sehr kombakte formel bekommen
F5=WENN(TEIL(SVERWEIS(VERKETTEN($D$5;$E$5);$A$9:$F$232;3;FALSCH);1;1)="P";SVERWEIS(VERKETTEN($D$5;$E$5);$A$9:$F$232;3;FALSCH);"")
G5=WENN(TEIL($F$5;1;1)="P";SVERWEIS(VERKETTEN($D$5;$E$5);$A$9:$F$232;4;FALSCH);"")
H5=WENN(TEIL($F$5;1;1)<>"P";SVERWEIS(VERKETTEN($D$5;$E$5);$A$9:$F$232;3;FALSCH);WENN(ISTZAHL(FINDEN(".";$F$5;1));SVERWEIS(VERKETTEN(TEIL($F$5;1;2);$G$5);$B$9:$F$232;4;FALSCH);SVERWEIS(VERKETTEN($F$5;".1";$G$5);$B$9:$F$232;4;FALSCH)))
I5=WENN(TEIL($F$5;1;1)<>"P";SVERWEIS(VERKETTEN($D$5;$E$5);$A$9:$F$232;4;FALSCH);WENN(ISTZAHL(FINDEN(".";$F$5;1));SVERWEIS(VERKETTEN(TEIL($F$5;1;2);$G$5);$B$9:$F$232;5;FALSCH);SVERWEIS(VERKETTEN($F$5;".1";$G$5);$B$9:$F$232;5;FALSCH)))