Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bezug, Automatisierte Auswertung

Bezug, Automatisierte Auswertung
09.12.2019 10:20:06
André
Hallo Forum,
ich finde hier häufig Hilfe bei meinen Fragen, nun habe ich aber ein spezielles Problem, welches ich so nicht auf Anhieb finde.
Ich habe in meiner Tabelle im Tabellenblatt 1 eine dynamische Tabelle, in die ich Bauteile zur Reparatur eintrage. Für die Reparatur habe ich 15 Tage Zeit und das Teil durchläuft mehrere Abteilungen. Die Abteilung wähle ich mit einer Dropdown Liste aus. Da der "15-Tage-Countdown" durch diverse Umstände unterbrochen werden kann, gibt es noch Felder für die Unterbrechung und der Fortführung.
Auf Tabellenblatt 2 möchte ich nun eine Übersicht haben, in welcher Abteilung sich welche Teile gerade befindet und wie viele Tage es schon unterwegs ist. Ich habe es mit "Verketten" und einer extrem langen "Wenn" Funktion versucht. Eigentlich würde es so funktionieren (wobei ich überzeugt bin, es würde wahrscheinlich einfacher gehen, weiß aber nicht wie), allerdings wenn ich jetzt im Tabellenblatt 1 eine Position lösche, weil sie abgearbeitet ist, bekomme ich einen Bezugsfehler. Wie kann ich diesen beheben? Oder gibt es eine elegantere Lösung?
Hier meine Tabelle (die komplette Formel ist bisher nur in C1, da sie ja erst funktionieren soll):
https://www.herber.de/bbs/user/133686.xlsm
Danke für Eure Hilfe.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bezug, Automatisierte Auswertung
09.12.2019 15:48:43
fcs
Hallo André,
mit Hilfspalte vereinfacht sich die Formel.
Berechnung Hilfswerte für Funktion Vergleich in Spalte I auf Tabellenblatt 1:
Spaltentitel in I1: Vergleich
Formel in I2:
=[@Bereich]&"|"&WENN([@[Verbl. Tage]]>15;"über Termin";"Tag "&[@[Verbl. Tage]])

Formel ggf. nach unten kopieren
Formel in B2 auf Blatt Auswertung:
=WENNFEHLER(INDEX(Tabelle2[Teil];VERGLEICH($A2&"|"&B$1;Tabelle2[Vergleich];0));"")

Diese Formel nach rechts und nach unten kopieren.
LG
Franz
Anzeige
AW: Bezug, Automatisierte Auswertung
09.12.2019 16:40:10
André
Danke für die Antwort. Damit erleichtert sich die Sache natürlich ungemein. Allerdings schreibt er jetzt bei der Auswertung nur ein Teil in die Zelle. Wenn jetzt z. B. 2 Teile in der selben Abteilung sind und noch gleich viele Tage Durchlauf haben, soll er auch beide Teile in die entsprechende Zelle schreiben. Das funktionierte vorher mit VERKETTEN, das geht bei dieser Formel irgendwie nicht mehr.
Nach Auswertung mehrere Texte in eine Zelle
10.12.2019 08:03:42
André
Mit Hilfe von Franz bin ich schon kurz vor der Lösung. Allerdings schreibt die Formel immer nur 1 Teil pro Zelle. Wenn jetzt aber mehrere Teile die selbe Laufzeit und in der selben Abteilung sind, sollen sie in der Auswertung auch untereinander in der selben Zelle stehen. Ich selber finde da aber keine Lösung.
So sieht meine Tabelle jetzt aus:
https://www.herber.de/bbs/user/133697.xlsm
Schon mal vielen Dank für Eure Hilfe!
Anzeige
AW: Nach Auswertung mehrere Texte in eine Zelle
10.12.2019 16:07:22
fcs
Hallo André,
um einen 2. Eintrag in der gleichen Zelle zu erfassen wird die Formel schon sehr aufwendig - Aber sie funktioniert.
Formel in Zelle B2:
=WENNFEHLER(INDEX(Tabelle2[Teil];VERGLEICH($A2&"|"&B$1;Tabelle2[Vergleich];0)) & WENN(ZÄHLENWENN(Tabelle2[Vergleich];$A2&"|"&B$1) &gt 1;ZEICHEN(10) & INDEX(BEREICH.VERSCHIEBEN(Tabelle2[Teil]; VERGLEICH($A2 & "|" & B$1;Tabelle2[Vergleich];0);0); VERGLEICH($A2 & "|" & B$1;BEREICH.VERSCHIEBEN(Tabelle2[Vergleich];VERGLEICH($A2 & "|" &B$1; Tabelle2[Vergleich];0);0);0));"");"")
Diese dann nach rechts und unten kopieren.
Als Alternative könntest du dir auch die nachfolgende benutzerdefinierte Funktion in dem VBA-Projekt einbauen.
LG
Franz
'Benutzerdefinierte Funktion in einem allgemeinen Modul
'Beispiel-Formel in Zelle B2:
'=WENNFEHLER(fncTeile_an_Tag(Tabelle2[Vergleich];$A2&"|"&B$1;Tabelle2[Teil]);"")
Function fncTeile_an_Tag(rngVergleich As Range, varWert, rngWerte, _
Optional bolGrossKlein As Boolean = False) As String
'Ermittelt die im Spaltenbereich rngVergleich mit varWert übereinstimenden Zellen _
und gibt die zugehörigen Werte in rngWerte als Ergebnis aus
Dim sErgebnis As String, intZelle As Integer
For intZelle = 1 To rngVergleich.Rows.Count
If IIf(bolGrossKlein, rngVergleich.Cells(intZelle, 1), _
LCase(rngVergleich.Cells(intZelle, 1))) _
= IIf(bolGrossKlein, varWert, LCase(varWert)) Then
sErgebnis = sErgebnis & IIf(sErgebnis  "", Chr(10), "") _
& rngWerte.Cells(intZelle, 1).Text
End If
Next
fncTeile_an_Tag = sErgebnis
End Function

Anzeige
AW: Nach Auswertung mehrere Texte in eine Zelle
11.12.2019 13:26:25
André
Hallo Franz,
danke für die Mühe. Es ist schon ein sehr guter Ansatz, aber leider noch nicht meine endgültige Lösung, da auch mehr als 2 Teile in einer Zelle möglich sein müssten. Es läuft wohl alles auf VBA hinaus. Da kenne ich mich aber überhaupt nicht aus. Trotzdem versuche ich mal mit meinem vorhandenen Nichtwissen und mit Hilfe von Youtube-Videos da was hinzubasteln. Allerdings weiß ich nicht genau, ob Dein Baustein so ausreicht. Deshalb noch folgende fragen:
In jede Zelle kommt eine angepasste Formel wie in Zeile 3, richtig?
Reicht Dein VBA-Code dann so aus, wie er da steht oder ist es nur ein Teil für Zelle B2?
Gruß André
Anzeige
AW: Nach Auswertung mehrere Texte in eine Zelle
11.12.2019 15:37:41
fcs
Hallo André,
VBA-Lösung:
Meine Beispielformel für Zelle B2 kannst du wieder nach unten und nach rechts kopieren.
Die VBA-Lösung könnte man auch so gestalten, dass die Hilfsspalte "Vergleich" nicht benötigt wird.
Siehe nachfolnde Variante.
LG
Franz
Function fncTeile_an_Tag_neu(rngAbteilung As Range, rngTag As Range, _
varAbteilung, varTag, rngTeile, _
Optional bolGrossKlein As Boolean = False) As String
'Vergleicht die Abteilungen und verbleibenden Tage und gibt bei Übereinstimmung _
die zugehörigen Werte (Teile) in rngWerte als Ergebnis aus
'Beispiel-Formel in Zelle B2:
'=WENNFEHLER(fncTeile_an_Tag_neu(Tabelle2[Bereich];Tabelle2[Verbl. Tage];$A2;B$1;Tabelle2[ _
Teil]);"")
Dim sErgebnis As String, intZelle As Integer, varTagVergleich
For intZelle = 1 To rngAbteilung.Rows.Count
'Prüfung verbleibende Tage
If rngTag.Cells(intZelle, 1).Value > 0 Then
varTagVergleich = "Tag " & rngTag.Cells(intZelle, 1).Value
ElseIf rngTag.Cells(intZelle, 1).Value  "", Chr(10), "") _
& rngTeile.Cells(intZelle, 1).Text
End If
Next
fncTeile_an_Tag_neu = sErgebnis
End Function

Anzeige
AW: Nach Auswertung mehrere Texte in eine Zelle
12.12.2019 08:50:58
André
Danke Franz,
sensationell! Ich habe noch einige Kleinigkeiten angepasst (anpassen können), aber jetzt läuft es, so wie ich es mir vorgestellt habe!
DANKE!!!
Gruß André

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige