Supportnet Computer Supportnet Games Supportnet Kochen Explipedia
Login: guestBesucher online: 129
Supportnet Computerforum
SUPPORT
Home
Forum
Tipps & Infos
Blitz Angebote
Members
Hilfe
Video

TOP THEMEN
SSD Test
Alles über SSDs

Android Tipps
iPad Tipps
Google Tipps
Windows 8 FAQ
Windows 7 FAQ
E-Mail FAQ
Netzwerk FAQ
Festplatten FAQ
Datenrettung FAQ
Bildbearbeitung FAQ

Top iPhone Apps
Computer Einsteiger
Die 5 besten...
Explipedia
Themen
Direktlinks

Neue Einträge
News einsenden News einschicken
Tipps einsenden Tipp einschicken

SN-LINKS

Suche
Befreundete Seiten
Top Seiten

Supportnet/Forum/Tabellenkalkulation



Supportnet/Forum/Tabellenkalkulation
von ahorn38 vom 11.10.2017, 12:11 Diese Seite den Supportnet Favoriten hinzufügen  Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden


Monat aus Datumsliste finden

 (160 Hits)

Hallo,

ich habe eine Zeile mit einer Anzahl von Einträgen im Format "dd:mm:yyyy" und möchte das erste (und später das letzte) Datum im Monat "Okt" finden.
Hat jemand eine Idee? Danke für jeden Tipp und Gruß A.


Antwort schreiben 50 Bonuspunkte

Antworten...
Antwort 1 von ahorn38 vom 11.10.2017, 12:26 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

mir ist dazu nur eine Schleife eingefallen:
For j = 4 To Cells(3, 256).End(xlToLeft).Column
    If Format(DateSerial(1, Month(Cells(3, j)), 1), "MMM") = strMonat Then   ' erstes Datum im Monat
        iColB = j
        Exit For
    End If
Next

Gibt's was besseres?
Gruß A.


Antwort noch nicht bewertet Als gute Antwort bewerten
Antwort 2 von Nighty___ vom 12.10.2017, 12:42 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Andres ^^

Eigentlich müßte das mit formel kkleinste/kgrösste/wenn leicht zu realisieren sein!

Wir hoffen daher erstmal auf unsere Formelfreaks :-)

Die entstandene Formel kannst du dann mit Application.Worksheetfunction ... oder auch mit Makrorecorder die Formel eingeben um entsprechenden Code in Vba zu nutzen!

Ansonsten schonmal ein guter Ansatz schleifen zu reduzieren bzw zu ersetzen!

Gruß Nighty


Antwort noch nicht bewertet
Antwort 3 von ahorn38 vom 12.10.2017, 13:35 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,
ok danke für den Hinweis. Mal sehen ob noch jemand einen Tipp hat. Ich wollte eben gerade die Schleife vermeiden auch wenns erst mal funktioniert.
Gruß A.


Antwort noch nicht bewertet Als gute Antwort bewerten
Antwort 4 von xlKing vom 14.10.2017, 18:21 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Andreas,

das kommt ganz darauf an, was du vorhast. Willst du nur wissen ob ein Monat 30 oder 31 Tage hat? Dann reicht die Formel =MONATSENDE(DATUM(2017;10;1);0). Statt Datum() kannst du dich auch auf eine beliebige Zelle mit Datumseintrag beziehen.

Oder willst das Ergebnis weiterverarbeiten? Dann könnte man für den letzten Eintrag eines Monats, mit WVERWEIS rangehen. Funktioniert wie SVERWEIS nur quer rüber. Das hat dann den Vorteil, dass du einen zugehörigen Wert zurückgeben kannst, der in der Spalte weiter unten steht.

z.B. =WVERWEIS(DATUM(2017;10;31);3:3;1)
oder im VBA: MsgBox CDate(Application.HLookup(CLng(DateSerial(2017, 10, 31)), Range("3:3"), 1))

Durch Weglassen des vierten Parameters wird der letzte Wert zurückgegeben der kleiner oder gleich dem Suchwert ist. z.B. 29.10.17. Dazu sollten die Werte möglichst aufsteigend sortiert sein, andernfalls wird nicht der höchste, sondern der am weitesten rechts liegende Oktoberwert zurückgegeben, auch wenn dieser irgendwo mitten im Oktober liegt.
Für den Ersten Oktobereintrag (z.B. 3.10.) würde die Formel jedoch den letzten Septemberwert zurückgeben. Hier könnte man auf Index und Vergleich ausweichen und einfach eine Zelle weiter rechts vom Ergebnis zurückgeben.

=INDEX(3:3;1;VERGLEICH(DATUM(2017;10;1);3:3;1)+1)
oder über VBA: MsgBox CDate(Application.Index(Range("3:3"), 1, _
Application.Match(CLng(DateSerial(2017, 10, 1)), Range("3:3"), 1) + 1))

Auch hier sollten die Daten aufsteigend sortiert sein. Außerdem sollte sichergestellt sein, dass sich überhaupt Oktoberwerte im Blatt befinden. Sonst wird durch das Verschieben vom 30. Sept um 1 nach rechts der nächsthöhere Wert (z.B. 1.November) zurückgegeben. Das kannst du bei Bedarf mit Wenn-Funktion ausschließen.

Wie gesagt, kannst du statt dem Wert von Zeile 1 im dritten Parameter von Wverweis, bzw. im zweiten Parameter von Index auch jeden andere beliebige Zeile innerhalb der Spalte zurückgeben.

Gruß Mr. K.


Antwort noch nicht bewertet
Antwort 5 von Nighty__ vom 15.10.2017, 12:46 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Mr. K. ^^

Klasse Lösung!

Gruß Nighty


Antwort noch nicht bewertet




Antwort schreiben
    Bitte einen 'Nickname' wählen.
Nickname:*
    (eMail-Adresse wird nicht veröffentlicht.)
eMail:
Nachricht: Ich möchte bei Antworten benachrichtigt werden.
    Hilfe zur Beitragsformatierung gibts [hier]
                   
Antwort:*
  Die Nutzungsbedingungen habe ich gelesen und akzeptiert.

MACHEN SIE IHRE WEBSITE ATTRAKTIVER
Sie haben eine eigene Website und wollen Ihre Besucher auf den Supportnet-Service aufmerksam machen? Kopieren Sie einfach den Quellcode in Ihre Seite und jeder Besucher Ihrer Seite kann direkt auf die Supportnet-Datenbank zugreifen.

My Supportnet


SUCHE

Gruppen im Forum
Betriebsysteme
Software
Hardware
Netzwerk
Programmierung
Sonstiges

Impressum © 1997-2015 SupportNet
Version: supportware 1.8.230E / 18.10.2010, Startzeit:Mon Oct 23 04:22:08 2017