546 Aufrufe
Gefragt in Tabellenkalkulation von vernichter Mitglied (261 Punkte)

Hallo zusammen,

nehmen wir einmal an das wir 4 User haben:

User 1 geht in Ecke 1 schaut sich die Artikel an und schreibt sich zu diesen das passende MHD samt Anzahl auf überträgt es in eine Tabelle und fertig, genau das selbe tut auch User 2 aber eben in Ecke 2.

Das ganze übergibt man dann User 3 der sich ewig damit aufhält das ganze geordnet abzutippen und eventuell bei selben Artikel mit selben MHD die Anzahl zusammenzurechnen und das MHD auch noch in ordentlicher Reihenfolge zu bringen. User 4 denkt sich Nope geht garnicht dauert alles viel zu lange.

Es befindet sich alles in der selben Datei später dann auch in verschiedenen Tabellen aber immer in der selben Datei und der Aufbau ist immer der selbe, soll quasi zusammengeführt werden und ich blick da nicht mehr durch.

User 4 ist jetzt hier und benötigt dringend eure Hilfe. :-)

Im Anhang die Datei der 4 User:

https://www.dropbox.com/s/olm0deg61zh9rtg/Mappe1.xlsx?dl=0

Vielleicht hat jemand von euch einen Tipp oder Ansatz wie ich hier weiter komme

Grüße

energun

17 Antworten

+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)
Bearbeitet von m-o
Hallo energun,

hier mal ein Vorschlag, wie du das Problem lösen kannst:

Formel in Zelle T2: =WENNFEHLER(KKLEINSTE((B2;D2;H2;J2;N2;P2);1);"")

Formel in Zelle U2: =SUMMEWENN(B2;T2;C2)+SUMMEWENN(D2;T2;E2)+SUMMEWENN(H2;T2;I2)+SUMMEWENN(J2;T2;K2)+SUMMEWENN(N2;T2;O2)+SUMMEWENN(P2;T2;Q2)

Formel in Zelle V2: =WENN(WENNFEHLER(KGRÖSSTE((B2;D2;H2;J2;N2;P2);1);"")=T2;"";WENNFEHLER(KGRÖSSTE((B2;D2;H2;J2;N2;P2);1);""))

Formel in Zelle W2: =SUMMEWENN(B2;V2;C2)+SUMMEWENN(D2;V2;E2)+SUMMEWENN(H2;V2;I2)+SUMMEWENN(J2;V2;K2)+SUMMEWENN(N2;V2;O2)+SUMMEWENN(P2;V2;Q2)

Die Formeln kannst du soweit wie benötigt nach unten ziehen.

Gruß

M.O.
0 Punkte
Beantwortet von vernichter Mitglied (261 Punkte)

Hallo M.O.

funktioniert natürlich. Wie kann ich denn die Formeln erweitern bei mehr MHD's?

Wie man in der neu hochgeladenen Mappe sieht hab ich das ganze von B2 - G2 und J2 bis O2 erweitert was auch normal funktioniert. Allerdings gibts es nur 1 KKLEINSTE und 1 KGRÖSSTE was ja an und für sich auch normal ist.

Es können nacher auch mehrere MHD's vorkommen. Wie kann ich denn die vorhandenen Formeln so erweitern das diese mir mehrere MHD's anzeigt?

Im Anhang die neue Datei:

https://www.dropbox.com/s/t006wb5ncrxtj77/energun_mappe_2.xlsx?dl=0

Gruß

energun oder energun333

+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)

Hallo energun,

ersetze mal die vorhande KGRÖSSTE-Formel wie folgt und sieh, was passiert smiley:

=WENN(WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);2);"")=R2;"";WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);2);""))

In dem Beispiel wird das zweitgrößte Datum ausgeben. So kannst du deine Tabelle erweitern.

Gruß

M.O.

0 Punkte
Beantwortet von vernichter Mitglied (261 Punkte)

Hallo M.O,

auch das funktioniert natürlich. Das Problem ist hier aber das er eben nur das kleinste und das größte anzeigt.

In der neuen Datei die ich oben angehängt habe sieht des so aus.

User 1:

16.10.2018 100 15.10.2018 100 17.10.2018 100

User 2:

15.10.2018 200

so sollte es dann aussehen:

15.10.2018 300 16.10.2018 100 17.10.2018 100

und so sieht es aus:

15.10.2018 300 16.10.2018 100

R2: 15:10.2018

=WENNFEHLER(KKLEINSTE((B2;D2;F2;J2;L2;N2);1);"")

S2: 300

=WENN(SUMMEWENN(B2;R2;C2)+SUMMEWENN(D2;R2;E2)+SUMMEWENN(F2;R2;G2)+SUMMEWENN(J2;R2;K2)+SUMMEWENN(L2;R2;M2)+SUMMEWENN(N2;R2;O2)<>0;SUMMEWENN(B2;R2;C2)+SUMMEWENN(D2;R2;E2)+SUMMEWENN(F2;R2;G2)+SUMMEWENN(J2;R2;K2)+SUMMEWENN(L2;R2;M2)+SUMMEWENN(N2;R2;O2);"")

T2: 16.10.2018

=WENN(WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);2);"")=R2;"";WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);2);""))

U2: 100

=WENN(SUMMEWENN(B2;T2;C2)+SUMMEWENN(D2;T2;E2)+SUMMEWENN(F2;T2;G2)+SUMMEWENN(J2;T2;K2)+SUMMEWENN(L2;T2;M2)+SUMMEWENN(N2;T2;O2)<>0;SUMMEWENN(B2;T2;C2)+SUMMEWENN(D2;T2;E2)+SUMMEWENN(F2;T2;G2)+SUMMEWENN(J2;T2;K2)+SUMMEWENN(L2;T2;M2)+SUMMEWENN(N2;T2;O2);"")

V2: hier sollte eigentlich 17.10.2018 stehen

=WENN(WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);3);"")=R2;"";WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);3);""))

W2: hier sollte dann 100 stehen

=WENN(SUMMEWENN(B2;V2;C2)+SUMMEWENN(D2;V2;E2)+SUMMEWENN(F2;V2;G2)+SUMMEWENN(J2;V2;K2)+SUMMEWENN(L2;V2;M2)+SUMMEWENN(N2;V2;O2)<>0;SUMMEWENN(B2;V2;C2)+SUMMEWENN(D2;V2;E2)+SUMMEWENN(F2;V2;G2)+SUMMEWENN(J2;V2;K2)+SUMMEWENN(L2;V2;M2)+SUMMEWENN(N2;V2;O2);"")

 Würde ich jetzt in T2 das hier reinschreiben:

=WENN(WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);2);"")=R2;"";WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);2);""))

und in V2 das hier:

=WENN(WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);1);"")=R2;"";WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);1);""))

da sieht das ganze ordentlich aus:
15.10.2018 300 16.10.2018 100 17.10.2018 100

 lösche ich nun aus F das Datum baut es mir hinten ne Lücke ein.

Irgendwie will das noch nicht so richtig bei mir.

Gruß

energun

+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)

Hallo energun,

für die Formel in V2 (MHD 3) benutze folgende Formel:

=WENN(WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);1);"")=R2;"";WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);1);""))

Die Formel in W (Menge 3) lautet:

=WENN(SUMMEWENN(B2;V2;C2)+SUMMEWENN(D2;T2;E2)+SUMMEWENN(F2;V2;G2)+SUMMEWENN(J2;V2;K2)+SUMMEWENN(L2;V2;M2)+SUMMEWENN(N2;V2;O2)<>0;SUMMEWENN(B2;V2;C2)+SUMMEWENN(D2;V2;E2)+SUMMEWENN(F2;V2;G2)+SUMMEWENN(J2;V2;K2)+SUMMEWENN(L2;V2;M2)+SUMMEWENN(N2;V2;O2);"")

Wenn es nur zwei Daten gibt, bleibt MHD2 und Menge 2 leer, die Daten stehen dann in MHD 1 und MHD 3

Hier mal deine bearbeitete Beispieldatei: Download

Gruß

M.O.

0 Punkte
Beantwortet von vernichter Mitglied (261 Punkte)

Hallo M.O.

so ganz will das bei mir nicht, entweder ick bin zu doof oder die Formel ist für diesen Zweck nicht die richtige.

Ich hab den Fehler mal rot gekennzeichnet.

Ich nehm hier mal die Summenformel raus da diese funktioniert.

MHD1

=WENNFEHLER(KKLEINSTE((B2;J2;D2;L2;F2;N2);1);"")

MHD2

=WENN(WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);3);"")=R2;"";WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);3);""))

MHD3

=WENN(WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);2);"")=R2;"";WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);2);""))

MHD4

=WENN(WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);1);"")=R2;"";WENNFEHLER(KGRÖSSTE((B2;D2;F2;J2;L2;N2);1);""))

eigentlich ist ja auch immer das selbe außer 3,2,1, trotzdem wird das ein oder andere Datum doppelt dargestellt.

Gruß

energun

http://supportnet.de/forum/?qa=blob&qa_blobid=4100365947195930568

0 Punkte
Beantwortet von vernichter Mitglied (261 Punkte)

Hallo M.O.

ich glaube ich hab es mit ein bissl Tricks hinbekommen. :-)

http://supportnet.de/forum/?qa=blob&qa_blobid=686261687010717100

Muss nur noch mal schauen ob es dann in der richtigen Datei genauso funktioniert. Ausgabe User 4 und Sortierung müssen nacher eben 12 MHD's haben also doppelt so viele Felder von User 1 und User 2.

Gruß

energun

+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)

Hallo energun,

ich bin leider nicht früher dazu gekommen, dir zu antworten. Auch ich habe etwas gebastelt: eine benutzerdefinierte Function:

Public Function MHD(rngUeberschrift As Range, lngRang As Long) As Variant
Dim i As Long
Dim z As Long
Dim lngZaehler As Long
Dim varFeld As Variant
Dim lngAnzahl As Long
Dim bExists As Boolean
Dim lngZeile As Long
Dim varWerte As Variant
Dim rngZelle As Range
Dim lngFZaehler As Long

'Zeile aus der die Funtion aufgerufen wird
lngZeile = Application.Caller.Row

ReDim varWerte(rngUeberschrift.Columns.Count)

'Daten des MHD einlesen
For Each rngZelle In rngUeberschrift
  If Left(rngZelle, 3) = "MHD" Then
    If Cells(lngZeile, rngZelle.Column) <> "" Then
      lngZaehler = lngZaehler + 1
      varWerte(lngZaehler) = Cells(lngZeile, rngZelle.Column)
    End If
  End If
Next rngZelle

ReDim varFeld(lngZaehler)
varFeld(1) = varWerte(1)
lngFZaehler = 1

For i = 2 To lngZaehler
 bExists = False
 For z = LBound(varFeld) To UBound(varFeld)
   If varFeld(z) = varWerte(i) Then
     bExists = True
     Exit For
   End If
 Next z
 If bExists = False Then
  lngFZaehler = lngFZaehler + 1
  varFeld(lngFZaehler) = varWerte(i)
 End If
 
Next i

'Sortieren
For z = lngFZaehler - 1 To LBound(varFeld) Step -1
        For i = LBound(varFeld) To z
            If varFeld(i) > varFeld(i + 1) Then
                varWert = varFeld(i)
                varFeld(i) = varFeld(i + 1)
                varFeld(i + 1) = varWert
            End If
        Next i
    Next z

MHD = varFeld(lngRang)

End Function

Kopiere die Function in ein allgemeines Modul deiner Arbeitsmappe.

Der Aufruf erfolgt über = MHD(Bereich der Überschrift, Rang)

Bereich der Überschrift: Markiere den Bereich, in dem die Überschriften stehen

Rang: eine Zahl ab 1 (1 = kleinstes Datum)

Bsp: =MHD(B1:O1;1) ergibt das Kleinste Datum der MHD's im Bereich der Spalten B bis O der Zeile, in der die Formel steht.

Du kannst es ja mal probieren.

Gruß

M.O.

0 Punkte
Beantwortet von vernichter Mitglied (261 Punkte)
Hallo M.O.

funktioniert für die erste Zeile auf alle Fälle. Nur nach unten kann ich  sie nicht ziehen dann kommt #WERT! Wenn ich jetzt die Eingaben von User1 und User2 lösche bleiben die Daten in User4 stehen.

PS. musst dich hier für nix entschuldigen oder dergleichen ist doch nicht deine Pflicht hier ständig zu helfen.

Gruß

energun
+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)
Hallo energun,

wenn du die Formel nach unten ziehen willst, dann musst die Angabe für die Überschrift absolut adressieren:

=MHD($B$1:$O$1;1)

Wenn du etwas änderst, gehe in das Menüband Formeln und wähle dort "Blatt berechnen". Dann sollte sich die Formel neu berechnen.

Gruß

M.O.
...