Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Mind. 1 Ereignis in einer Spalte
#11
Hallo Thomas,

ich habe mich zwar nicht 100%ig an Deine Vorgaben gehalten, aber mal mit VBA etwas gebastelt, das zumindest Dein gewünschtes Ergebnis ausspucken sollte.

Mein Testszenario: Ihr habt fünf OPs mit den Nummern 010 ... 050. [Korrektur: Ich habe die in Deinen Tabellen übernommen] Für jeden Saal gibt es eine Zeile in die Du das Datum und j oder n für die Notfälle einträgst. Du kannst entweder alle Säle mit Werten belegen oder einzelne. Mehrfachwerte pro Datum funktionieren erst nach dem Button eintragen. Das Blatt schreibt ein Historie, aus der Du weitere Auswertungen ziehen kannst. 
Der Button Reset löscht die Historie und füllt den (farbig markierten) Eingabeblock (die anderen Zellen sind [oPW] schreibgeschützt) mit ersten Beispieldaten zum Testen. Trage danach nur ein oder zwei Säle ein, dann wird das Ergebnis gut sichtbar.

.xlsb   EmergencyLog.xlsb (Größe: 21,06 KB / Downloads: 3)
Würd' mich freuen, wenn's passt. Wenn ihr weniger Säle, andere Bezeichnungen habt, kannst Du diese selber ändern. Wenn's mehr Säle sind, passe ich den Code gerne entsprechend an.

Grüße

d`r Bastler von den VBAsteleien.de
Win 10 & 11, Office 2019 & 2021 & macOS X.15, XL 2019
Antworten Top
#12
Hi Bastler,



Zitat:ich habe mich zwar nicht 100%ig an Deine Vorgaben gehalten,



schlecht. Nur weil einem langweilig ist, etwas Neues zu erfinden mag zwar der inneren Befriedigung dienen, ist aber meist für die Aufgabe nicht hilfreich.
Hier ist die Lösung für meine Begriffe völlig am Thema vorbei, weil es wohl um die Aufbereitung alter Daten geht.


Zu Deinem Code:

Es werden keine Fehleingaben verhindert.
Die Variablen sollten sprechende Bezeichnungen haben, man kann den Code leichter nachvollziehen.
Dim as integer ist weniger sinnvoll, da intern alle Werte sowieso in long umgewandelt werden.
Bei mehreren fehlerhaften Einträgen in Zeilen 2-7 wird zwar gezählt, wieviel Fehler es sind, aber es wird nur die Zelle mit der letzten unvollständigen Eingabe markiert.
Beim Löschen werden irgendwelche Werte in B2:C7 eingetragen, sehr verwirrend und vor allem unsinnig, da diese Daten bei Betätigen von "eintragen" in die Liste übertragen werden.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#13
(22.07.2022, 16:57)Gastlich schrieb: die Zeile 22 OP-Saal 2 gibt es auch in Zeile 12&13.

ja stimmt. In dem Fall wäre E22 = 1, der Rest bleibt gleich.

Ich habe B22 korrigiert, die Tabelle ist nach OP-Datum und OP-Saal sortiert. Im Grunde genommen sollte die Abfrage in E davon ja aber auch unabhängig sein.


Angehängte Dateien
.xlsx   op auslastung.xlsx (Größe: 10,09 KB / Downloads: 1)
Antworten Top
#14
Hi,

und warum nimmst Du nicht meine Formel????

Du kannst die Spalte D sowieso weglassen, die macht keinen Sinn.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#15
(23.07.2022, 00:26)d'r Bastler schrieb: Würd' mich freuen, wenn's passt. Wenn ihr weniger Säle, andere Bezeichnungen habt, kannst Du diese selber ändern. Wenn's mehr Säle sind, passe ich den Code gerne entsprechend an.

Vielen Dank, mir geht es hier nur tatsächlich um die Auswertung historischer Daten, und zwar ziemlich vieler...

Manuelle Eingabe ist daher keine Option, trotzdem Danke!

Thomas

(23.07.2022, 09:59)BoskoBiati schrieb: und warum nimmst Du nicht meine Formel????

Du kannst die Spalte D sowieso weglassen, die macht keinen Sinn.

na ja, weil sie nicht zu korrekten Ergebnissen führt (siehe Anlage)

Spalte D war ein Hilfskonstrukt und ist hier tatsächlich nicht weiter relevant. In der Originaltabelle wird D über WENN-Abfragen automatisch bestimmt und einige Analysen laufen darüber, z.B. Summe OP-Zeiten je Saal etc.


Angehängte Dateien
.xlsx   op auslastung.xlsx (Größe: 12,78 KB / Downloads: 7)
[-] Folgende(r) 1 Nutzer sagt Danke an thfrank für diesen Beitrag:
  • d'r Bastler
Antworten Top
#16
Hallöchen,

... wobei unten bei mir / der 6 auch eine 1 kommt, weil in der Vergangenheit der Fall ja existierte.
Wenn Du das noch um das Datum von Spalte A erweiterst, würde es Deinem Wunsch noch näher kommen. Allerdings würde in Zeile 9 eine 0 stehen, da zu dem Zeitpunkt an dem Tag im betreffenden Saal ja noch kein Notfall vorlag.
Das könnte man aber auch lösen, indem man immer den ganzen Bereich prüft, also z.B. B$2:B$22

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEFG
1OP-DatumOPSNF j/nT+OPS gleichOPS min 1 NF
201.01.2019110111
301.01.2019210111
401.01.2019201101
501.01.2019211101
601.01.2019610111
701.01.2019611101
801.01.2019611101
902.01.2019100101
1002.01.2019111101
1102.01.2019101101
1202.01.2019210101
1302.01.2019211101
1402.01.2019300000
1502.01.2019400000
1602.01.2019401000
1702.01.2019500000
1802.01.2019501000
1902.01.2019501000
2002.01.2019501000
2102.01.20191200000
2202.01.2019600001

ZelleFormel
F2=(ZÄHLENWENN($B$1:B2;B2)=1)*(ZÄHLENWENNS(A:A;A2;B:B;B2;C:C;1)>0)
G2=--(ZÄHLENWENNS(($B$2:B2);B2;($C$2:C2);1)>0)
Verwendete Systemkomponenten: [Windows (64-bit) NT 10.00] / MS Excel 365
Diese Tabelle wurde mit Tab2Html (v2.7.2) erstellt. ©Gerd alias Bamberg
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#17
(23.07.2022, 10:27)schauan schrieb: Hallöchen,

... wobei unten bei mir / der 6 auch eine 1 kommt, weil in der Vergangenheit der Fall ja existierte.

Also, G liefert das korrekte Ergebnis außer in Zeile 22. Das kapier ich grad nicht. Soweit ich sehe, gibt es keine zweite Zeile mit OP 6 am 2.01.2019.

PS: Das Datum wird in der Formal aber gar nicht abgefragt oder?
Antworten Top
#18
Hi,

ich hatte schon mehrfach die richtige Formel vorgestellt:

=--(ZÄHLENWENNS(A:A;A2;B:B;B2;C:C;1)>0)

z.B.:

https://www.clever-excel-forum.de/Thread...#pid254149
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#19
@thfrank

tut mir echt leid, wenn ich so weit danebengehauen habe. Sorry! Ich hatte Deine Eröffnung so verstanden, dass es um die tägliche Erfassung geht. Aber Danke für Deine Rückmeldung! 

Wenn wenigstens die Ausgabe Deinen Vorstellung entspricht, kann man meinen Code auch so umbauen, dass er bereits bestehende Daten auswertet und danach für die tägliche Erfassung zur Verfügung steht. Also Two Tools in One.

Grüße

@BoskoBiati 
Zitat:schlecht
Ausgerechnet von einem erfahrenen XLanten solch eine pauschale Aussage zu lesen, verwundert mich doch sehr. Denn dann scheint in Dir in der Vergangenheit wohl entgangen zu sein, dass es gelegentlich durchaus sinnvoll ist, das Konzept eines Fragestellers etwas umzukrempeln und damit die Lösung zu vereinfachen. Das habe ich hier versucht, und es ist schiefgegangen, weil in unzähligen Beiträgen das Detail mit den historischen Daten übersehen habe. Ich habe Frank dafür um Entschuldigung gebeten - werde das Prinzip ansonsten allerdings nicht aufgeben.
Zitat:Langeweile & Befriedigung
Solch Kaffeesatz-Psychologie empfehle ich Dir künftig zu unterlassen. Sonst kann es Dir passieren, dass ich entsprechend antworte.  Welche Gründe ich habe,  hier genau so mitzumachen, wie ich es tue, kannst Du aus anderen Beiträgen lesen. Ich halte solche persönlichen Beurteilungen für  so unnötig wie 'nen Kropf mit Socken.
Oder soll ich auch mal? Deine vier Fragezeichen (nach alter Netiquette bekanntlich laut gebrüllt) bezüglich Deiner Formel, könnten dann auf verletzte Eitelkeit schließen lassen, dass man sich in Deine Kreise eingemischt hat. Aber sorry, das waren jetzt Teeblätter und kein Kaffeesatz.
Was Deine Beurteilung meines Codes betrifft, gebe ich Dir in genau einem Punkt ungebremst Recht: Es werden keine Fehler abgefangen. Nachdem ich (und ich weiß, dass ich da alle andere als alleine bin) ein Forum als Hilfe zur Selbsthilfe verstehe, liefere ich hier die Anregungen, die einem Fragesteller auf den Weg helfen und keine fertigen Produkte für den Firmenalltag. Konsequentes Error Handling erledige ich gerne nach Pflichtenheft. Aber dann wäre das kostenlose Auftragsprogrammierung, mit der Leuten, die damit ihr Brot verdienen, das Geld weggenommen wird. Das nicht.
Alles andere ist mein Programmierstil, in dem ich auch nach Jahren problemlos zurechtkomme. Zumal ich den Code in aller Regel so kommentiere, dass er auch für Dritte nachvollziehbar. Dass Integer intern in Long umgewandelt werden soll, wäre mir neu (falls es doch stimmt, Danke dafür), habe ich in meinen XL-Versionen mit Integer durchaus Überlauf-Meldungen gesehen, die dann mit Long erledigt waren.

d`r Bastler von den VBAsteleien.de
Win 10 & 11, Office 2019 & 2021 & macOS X.15, XL 2019
Antworten Top
#20
Hi,

schlecht bezog sich auf den Satz davor, und das meine ich auch so. Die Vorgaben des TE sind erst einmal maßgeblich.

Zitat:dass es gelegentlich durchaus sinnvoll ist, das Konzept eines Fragestellers etwas umzukrempeln und damit die Lösung zu vereinfachen

Kein Einwand, aber hier wird ja nichts vereinfacht, sondern verkompliziert.

Ansonsten habe ich schon mehrfach an Deinen Lösungen meine Zweifel gehabt (wie Andere auch):

https://www.clever-excel-forum.de/Thread...#pid254199
https://www.clever-excel-forum.de/Thread...ualisieren
https://www.clever-excel-forum.de/Thread...e-vergeben
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste