Excel Abfrage

Hallo zusammen.

folgendes Problem:
ich habe eine Excel-Tabelle in der ich in Spalte A und in Zeile 1 die Größe von Zahnrädern habe. In den Zellen A2 bis Y33 habe ich Daten stehen. Anhand einer bedingten Formatierung kann ich nun die Daten abfragen. Ich möchte jedoch zusätzlich in einer freien Zelle, sowohl das Zahnrad aus Spalte A und in einer zweiten freien Zelle das Zahnrad auf Zeile 1 angezeigt bekommen. z. B.: Zelle B9 = 37, dann sollte Spalte A 32 und Zeile1 17 ausgegeben werden.

Wie kann ich diese Aufgabe lösen, ohne kompliziert und zeitaufwändig auf eine =wenn(…) zurückgreifen zu müssen?

Danke schon mal für die Antworten :smile:

und jetzt
schliesst Du mal Deine Excel-Datei, gehst davon aus, dass wir nicht wissen, was Du hast und dann liest Du Deinen Beitrag so lange, bis Dir auffällt, dass der Text, den Du geschrieben hast absolut unverständlich ist.

Eine WENN-Formel ist im übrigen eine der einfachsten und essentiellsten Formeln in Excel.
Aber das nur so am Rande…

Grüße

Na dann eben nochmal in verständlich :smiley: (Versuch):
Exceltabelle. Zahnräder stehen in Zeile 1 (B1, C1, D1, …, Y1) und in Spalte A (A2, A3, A4 …, A33).

A B C D … Y
1 72 70 68 … 72
2 84 15 22 20 20
3 82 10 20 15 18
4 72 9 18 5 9
5 70 8 5 5
. . . . . … .
. . . . . … .
33 2 . . . … 0,5

Die bedingte Formatierung durchsucht bei Abfrage die Daten zwischen B2 und Y33. Wenn ich also in meinem „Suchfeld“ z. B. 18 eingebe, bekomme ich C4 und Y3 als Wert zurück. Wie schaffe ich es nun, in seperaten leeren Zellen - um bei diesem Beispiel zu bleiben - die Werte 70 und 72 (C1 und A1) als auch die Werte 72 und A3 (Y1 und Y3) angezeigt zu bekommen?

Eine WENN-Abfrage ist bei der Menge von Daten in meinen Augen nicht mehr wirklich sinnvoll. Gibt es da keine elegantere Lösung?

Na dann eben nochmal in verständlich :smiley: (Versuch):

Ich brauch da noch einen Versuch…

Exceltabelle. Zahnräder stehen in Zeile 1 (B1, C1, D1, …,
Y1) und in Spalte A (A2, A3, A4 …, A33).
A B C D … Y
1 72 70 68 … 72

für mich stehen da nur Zahlen und keine Zahnräder.
Soll das deren Größe oder die Anzahl der Zähne sein? Woher soll ich wissen, was du mit 70 oder 72 meinst?

Wenn ich den Rest richtig verstehe willst Du also diese „Überschriften“ suchen…
Dazu würde ich denke ich eine Hilfsspalte bzw -Zeile einfügen…
In dieser suchst Du dann mit S- bzw WVERWEIS, ob diese Zahl (die Du dann in eine Zelle schreiben kannst) in der jeweiligen Spalte vorkommt und gibst eine Markierung aus, wenn das der Fall ist - oder lässt sie leer, wenn das nicht der Fall ist…

Vielleicht hilft das ja *schulterzuck*

Es verhält sich so, dass es sich bei den „Überschriften“ um die Anzahl der Zähne eines Zahnrades handelt. Die Kombination aus Zeile 1 und Spalte A (A1 ist leer) ergibt eine Flechtenkonstruktion, die in den Zellen B2 bis Y33 definiert ist. Da ich allerdings von der Flechtenkonstruktion her suchen muss, und es mehrere Möglichkeiten dafür gibt diese zu fertigen, wäre es hilfreich, wenn ich mir die Zahnradkombination seperat anzeigen lassen könnte. also wenn M15 dann M1 und A15 …

Na dann eben nochmal in verständlich :smiley: (Versuch):

Benutze den pre-Tag dann sieht dies so aus:

 A B C D ... Y
1 72 70 68 ... 72
2 84 15 22 20 ... 20
3 82 10 20 15 ... 18
4 72 9 18 5 ... 9
5 70 8 5 ... 5

wobei sich da die Frage nach D5 ergibt.

Die bedingte Formatierung durchsucht bei Abfrage die Daten
zwischen B2 und Y33.

? Bed. Formatierung nimmt man zum Formatieren von Zellen.
Welche Abfrage meinst du?

Wenn ich also in meinem „Suchfeld“ z. B.
18 eingebe, bekomme ich C4 und Y3 als Wert zurück. Wie schaffe
ich es nun, in seperaten leeren Zellen - um bei diesem
Beispiel zu bleiben - die Werte 70 und 72 (C1 und A1) als auch
die Werte 72 und A3 (Y1 und Y3) angezeigt zu bekommen?

Mir unklar. Wieso willst du den Inhalt der leeren Zelle A1?
Wieso Y3, du weißt doch durch die Suche daß da 18 drinsteht.

Wie wäre es mit einer Beispielmappe in der du farblich markierst und manuell einträgst was später Formeln o.ä. finden sollen.

Ist auch eine Vba-Lösung okay?

Gruß
Reinhard

Eine WENN-Abfrage ist bei der Menge von Daten in meinen Augen
nicht mehr wirklich sinnvoll. Gibt es da keine elegantere
Lösung?

Hallo liekki,

weißt du, was Google zu „Flechtenkonstruktion“ sagt…?

Es wurden keine mit Ihrer Suchanfrage - Flechtenkonstruktion - übereinstimmenden Dokumente gefunden.

Was ist eine Flechtenkonstruktion?

Finus

Flechtenkonstruktion kommt aus dem bereich der Flechterei für technische Textilien (Flechtschläuche aus z. B. Kohlefaser, Kevlar, Glasfaser…) und beschreibt die Überkreuzungen zweier Fäden pro französischem Zoll. Ihr findest solche Schläuche in euren Kühlschränken, im Auto, Staubsauger, Lampen, …

Die Frage nach D5 erklärt sich dadurch, dass manche Zellen leer sind, da die sich ergebende Konstruktion nicht realisierbar wären, da die Zahnräder nicht mehr ineinandergreifen würden.

Korrekt zwischen B2 und Y33 wird in der bedingten Abfrage gesucht.

Zelle A1 ist leer und bleibt auch leer. Die Ergebnisse (mögliche Zahnradkombination(en)) sollen erst unterhalb der Tabelle angezeigt werden.

Y3 - ich weiß dass 18 drinsteht. Ich hätte aber gerne in einer bzw zwei leeren Zellen die Kombination aus Y1 und A3 drinstehen haben - damit auch meine Leute in der Produktion damit etwas anfangen können.

VBA-Lösung ist natürlich auch o.k. - hauptsache ich komme irgendwie zu einer eleganten Lösung.

Grüezi liekki

Na dann eben nochmal in verständlich :smiley: (Versuch):
Exceltabelle. Zahnräder stehen in Zeile 1 (B1, C1, D1, …,
Y1) und in Spalte A (A2, A3, A4 …, A33).

A B C D … Y
1 72 70 68 … 72
2 84 15 22 20 20
3 82 10 20 15 18
4 72 9 18 5 9
5 70 8 5 5
. . . . . … .
. . . . . … .
33 2 . . . … 0,5

Wenn ich also in meinem „Suchfeld“ z. B.
18 eingebe, bekomme ich C4 und Y3 als Wert zurück. Wie schaffe
ich es nun, in seperaten leeren Zellen - um bei diesem
Beispiel zu bleiben - die Werte 70 und 72 (C1 und A1) als auch
die Werte 72 und A3 (Y1 und Y3) angezeigt zu bekommen?

Eine WENN-Abfrage ist bei der Menge von Daten in meinen Augen
nicht mehr wirklich sinnvoll. Gibt es da keine elegantere
Lösung?

Du könntest eine Benutzerdefinierte Funktion wie die unten stehende verwenden, der Du deinen Suchwert als Bezug sowie den Bereich (inkl. den Zeilen/Spalten-Überschriften) als Parameter übergibst.

Markiere dann einen Bereich der zwei Zellen breit und mehrere Zellen lang ist - gib dort die folgende Formel ein:

=Search_Gear(A40;A1:Y33)

und schliesse die Eingabe mit Strg+Umschalt+Return ab (als Matrix-Formel eben).

A40 ist hier das Suchfeld
A1:Y33 ist hier dein Datenfeld

Solange keine Übereinstimmung mit dem Suchfeld gefunden wird gibt der Bereich überall eine ‚0‘ aus - werden Übereinstimmungen gefunden erscheinen diese zeilenweise im Bereich mit der Formel.

Public Function Search\_Gear(Wert As Long, rngBereich As Range) As Variant
Dim rngSearch As Range
Dim rngZelle As Range
Dim lngColCorr As Long
Dim lngRowCorr As Long
Dim lngCount As Long
Dim arGears() As Long

 ReDim arGears(Application.Caller.Rows.Count - 1, Application.Caller.Columns.Count - 1)

 'Suchbereich festelegen und Korrekturwerte bestimmen
 With rngBereich
 Set rngSearch = rngBereich.Offset(1, 1).Resize(.Rows.Count - 1, .Columns.Count - 1)
 lngColCorr = .Range("A1").Column - 1
 lngRowCorr = .Range("A1").Row - 1
 End With

 'Prüfen ob Suchwert überhaupt vorhanden
 lngCount = WorksheetFunction.CountIf(rngSearch, Wert)
 If lngCount \> 0 Then
 lngCount = 0

 'Jede Zelle im Suchbereich prüfen
 For Each rngZelle In rngSearch

 'Wenn Wert gefunden Zeile/Spalte - Überschrift auslesen
 'un in Array schreiben
 If rngZelle.Value = Wert Then
 arGears(lngCount, 0) = rngBereich(rngZelle.Row - lngRowCorr, 1)
 arGears(lngCount, 1) = rngBereich(1, rngZelle.Column - lngColCorr)
 lngCount = lngCount + 1
 End If
 Next rngZelle
 End If

 'Array zurückgeben
 Search\_Gear = arGears()
End Function


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -