Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Jänner=Januar? Rechnen mit Monaten

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Jänner=Januar? Rechnen mit Monaten (3916 mal gelesen)
WolfgangE
Mitglied



Sehen Sie sich das Profil von WolfgangE an!   Senden Sie eine Private Message an WolfgangE  Schreiben Sie einen Gästebucheintrag für WolfgangE

Beiträge: 1006
Registriert: 29.01.2003

Compass2000 in (fast) allen Ausbaustufen: Jobserver, ACM, Replikator, DBQ-Programmierung.
Programmierung, Wartung und Administration von MSSQL2000-Datenbanken.
Grundlegende Kenntnisse in AutoLisp-Programmierung.

erstellt am: 03. Nov. 2004 08:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Excel-Profis,

habe ein ganz spezielles Problem:

Ausganssituation:
Ich habe 12 Tabellen, pro Monat eine, die mit dem Monatsnamen benannt sind. Also Jänner, Februar etc.
In Zelle A1 steht jeweils der Monatsnamen und das Jahr, z.B. "Jänner 2005".
Der Monatsname wird per Formel mit dem Namen des Arbeitsblatts belegt, das Jahr wird aus einer anderen Tabelle ausgelesen. Die Formel sieht dann so aus:
=TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname";A1))+1;255) & " " & Stammdaten!$D$1

Zielsetzung:
Ich muss im Rahmen von Berechnungen immer wieder den aktuellen Monat vergleichen, in dem ich mich befinde. Dabei habe ich immer wieder Vergleichswerte drin. Dieser Teil der Formel sieht z.B. so aus:
=WENN(MONAT($A$A)=MONAT($H$3);...)

Mein Problem:
Mein Problem ergibt sich im Arbeitsblatt "Jänner". Die Funktion MONAT(A1) ergibt 1. Allerdings nur, wenn die Ländereinstellungen stimmen, in meinem Fall "Deutsch(Österreich)". Sobald ich auf "Deutsch(Deutschland)" umstelle, ergibt die Formel einen Fehler.
In diesem Fall wird "Jänner" nämlich nicht als Monat erkannt, es müsste dann "Januar" heißen. 

Wie kann ich das am besten lösen? 

Einen Ansatz habe ich schon, aber damit werden die Formeln unnötig lang und unübersichtlich. Ich prüfe nämlich innerhalb der Formel, ob "Jänner" einen Fehler ergibt, wenn ja, ersetze ich "Jänner" durch "Januar". Die Funktion MONAT(A1) sieht dann so aus, damit 1 rauskommt:
=WENN(ISTFEHLER(MONAT(A1));MONAT(ERSETZEN(A1;1;LÄNGE(A1)-5;"Januar"));MONAT(A1))

Besten Dank und ciao,
WolfgangE

------------------
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Gazelle
Mitglied
CAD


Sehen Sie sich das Profil von Gazelle an!   Senden Sie eine Private Message an Gazelle  Schreiben Sie einen Gästebucheintrag für Gazelle

Beiträge: 155
Registriert: 15.03.2002

erstellt am: 03. Nov. 2004 09:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für WolfgangE 10 Unities + Antwort hilfreich

Hallo Wolfgang,

verstehe ich das richtig?
Wenn du die Ländereinstellung änderst, wird dann bei dir nicht automatisch aus Jänner Januar??

Gruß

------------------
Gazelle

"Gilde der Erfinnder"

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

WolfgangE
Mitglied



Sehen Sie sich das Profil von WolfgangE an!   Senden Sie eine Private Message an WolfgangE  Schreiben Sie einen Gästebucheintrag für WolfgangE

Beiträge: 1006
Registriert: 29.01.2003

Compass2000 in (fast) allen Ausbaustufen: Jobserver, ACM, Replikator, DBQ-Programmierung.
Programmierung, Wartung und Administration von MSSQL2000-Datenbanken.
Grundlegende Kenntnisse in AutoLisp-Programmierung.

erstellt am: 03. Nov. 2004 10:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Nicht ganz, aber der Rechner interpretiert das so.

Mach mal folgenden Versuch:
Schreib in Zelle A1: =MONAT("Jänner 2004")
und in Zelle A2: =MONAT("Januar 2004")

Und dann stell die Ländereinstellungen um. Einmal tritt der Fehler in A1 auf, bei der anderen Einstellung in A2.

------------------
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 03. Nov. 2004 13:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für WolfgangE 10 Unities + Antwort hilfreich

Hallo Wolfgang,

ist Dir zwar keine Hilfe, aber IMHOIn my humble opinion = Meiner bescheidenen Meinung nach ist das mit dem String etwas unglücklich.
Unter VBA gibts zwar MonthName(), welches Dir einen solchen liefert,
das hilft Dir glaube aber auch nicht weiter.
Und =Monat("Maerz 04") geht leider auch nicht, sonst hätt man können auf Ja für Januar & Jaenner prüfen.

Das einfachste wären wohl Blattnamen von 1 bis 12 ;-))

lg Nancy     

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

WolfgangE
Mitglied



Sehen Sie sich das Profil von WolfgangE an!   Senden Sie eine Private Message an WolfgangE  Schreiben Sie einen Gästebucheintrag für WolfgangE

Beiträge: 1006
Registriert: 29.01.2003

Compass2000 in (fast) allen Ausbaustufen: Jobserver, ACM, Replikator, DBQ-Programmierung.
Programmierung, Wartung und Administration von MSSQL2000-Datenbanken.
Grundlegende Kenntnisse in AutoLisp-Programmierung.

erstellt am: 03. Nov. 2004 14:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Nancy,

danke erst mal für die Antwort. Hast recht, mit 1 - 12 als Beschriftung gings wesentlich einfacher. Aufgrund der Anwenderfreundlichkeit sollten aber die Monatsnamen erhalten bleiben. Bekommen immerhin alle Mitarbeiter im Betrieb.

Ciao,
WolfgangE

------------------
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 03. Nov. 2004 14:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für WolfgangE 10 Unities + Antwort hilfreich

Wolfgang, da fiele mir jetzt nur diese VBA-Krücke ein,
ist aber nicht aus[tria]getestet ;-) :
Code:

Private Sub Workbook_Open()
  Dim ws As Worksheet
  For Each ws In ThisWorkbook.Worksheets
    If ws.Name Like "J*n*r" Then
      If MonthName(1) <> ws.Name Then ws.Name = MonthName(1)
      Exit For
    End If
  Next
End Sub


Naja, nicht ganz im Sinne des Erfinders,
vor allem wenn Du die Mappe 'makrofrei' haben willst,
aber leider keine andre Idee grade ...

lg Nancy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

WolfgangE
Mitglied



Sehen Sie sich das Profil von WolfgangE an!   Senden Sie eine Private Message an WolfgangE  Schreiben Sie einen Gästebucheintrag für WolfgangE

Beiträge: 1006
Registriert: 29.01.2003

Compass2000 in (fast) allen Ausbaustufen: Jobserver, ACM, Replikator, DBQ-Programmierung.
Programmierung, Wartung und Administration von MSSQL2000-Datenbanken.
Grundlegende Kenntnisse in AutoLisp-Programmierung.

erstellt am: 03. Nov. 2004 15:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Nancy,

stimmt, die Arbeitsmappe soll makro-frei bleiben, eben weil's im ganzen Haus verteilt wird.
Aber selbst wenn, das würde doch nicht funktionieren? Wenn ich richtig sehe, würde das Makro immer den Monatsnamen vom Tabellenblatt übernehmen, damit immer "Jänner" drin steht.
Aber das ist ja nicht das Problem. Das Problem ist die Funktion MONAT() und dass diese einen Fehler bringt wenn andere Ländereinstellungen verwendet werden. Ich will immer "Jänner" stehen haben, aber die MONAT()-Funktion verlangt eben einmal "Jänner" und ein anderes mal aber "Januar".

Ciao,
WolfgangE

------------------
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 03. Nov. 2004 16:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für WolfgangE 10 Unities + Antwort hilfreich

=VERGLEICH(A1;{"Jänner";"Februar";"März";"April";"Mai";"Juni";"Juli";"August";"September";"Oktober";"November";"Dezember"};0)


würde wenn in A1 Jänner steht den gewünschten Wert 1 bringen und wäre Datumsunabhängig - ich hoffe doch das du nur die Monate als Wert 1-12 haben willst, dann müsste das gehen

[Diese Nachricht wurde von Thomas Harmening am 03. Nov. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

WolfgangE
Mitglied



Sehen Sie sich das Profil von WolfgangE an!   Senden Sie eine Private Message an WolfgangE  Schreiben Sie einen Gästebucheintrag für WolfgangE

Beiträge: 1006
Registriert: 29.01.2003

Compass2000 in (fast) allen Ausbaustufen: Jobserver, ACM, Replikator, DBQ-Programmierung.
Programmierung, Wartung und Administration von MSSQL2000-Datenbanken.
Grundlegende Kenntnisse in AutoLisp-Programmierung.

erstellt am: 03. Nov. 2004 16:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Thomas,

stimmt, eigentlich will ich "nur" die Zahl 1 - 12 des Monats, allerdings ist dies nur ein Teil einer wesentlich längeren Formel. Ich müsste also diese Funktion überall entsprechend einbauen (was mir nimmer noch besser gefiele als das was ich bisher hab).

Mal sehen, vielleicht baue ich die Funktion in eine vesteckte Zelle ein, als eine Art Zwischenergebnis, mit dem ich dann einfach weiterrechne.

Danke und ciao,
WolfgangE

------------------
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 03. Nov. 2004 20:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für WolfgangE 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von WolfgangE:
Wenn ich richtig sehe, würde das Makro immer den Monatsnamen vom Tabellenblatt übernehmen, damit immer "Jänner" drin steht.

Hm, nicht ganz [hoff ich zumindest] ;-)

Es ging ja um die Sheetnamen und dass die Deus Probleme mit den Ösis haben
und umgekehrt, rein formeltechnisch natürlich ;-)
Da du ja mit den Blattnamen via Formel arbeitest, war halt mein Gedankengang,
je nach Ländereinstellung, aus Blattname Jänner - Januar [bei D] zu machen,
bzw. umgekehrt aus Januar - Jänner [bei A] zu machen, und zwar gleich beim Öffnen der Mappe.
Also ich dacht halt bei D:
?monthname(1)
Januar
und bei A:
?monthname(1)
Jänner

und das via like "J*n*r" prüfen, welche Systemeinstellung vorliegt.

Aber vielleicht hab' ich ja auch was falsch verstanden,
wieauchimmer - is ja nu auch egal, soll ja ohne vba sein ;-)

lg Nancy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz