PDA

Vollständige Version anzeigen : Problem mit Matrixformel


Immchen
05.04.2012, 06:33
Hallo,

ich habe folgende Formel:

{=WENNFEHLER(INDEX($AT$1:$AT$68;KKLEINSTE(WENN($AS$1:$AS$68=$G$39;ZEILE($1:$20)) ;ZEILE(A2)));"")}

Diese Formel soll mir zum nächsten Datum das passende Ereignis raussuchem.
Funktioniert eigentlich auch, aber nur wenn ich das Datum "per Hand" eintrage und dann "Enter" drücke.
Ich möchte jedoch das Datum aus zwei Zellen zusammensetzen lassen:

=AF39&R2

Die zusammengesetzten Daten erkennt die Formel leider nicht mehr.
Habe es auch schon per VBA versucht, funktioniert leider auch nicht:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Integer
Dim i As Integer

Zeile = 39
i = 18

If Intersect(Target, Range("AE39:AE89")) Is Nothing Then Exit Sub

While Not (IsEmpty(Cells(Zeile, 31)))

Cells(i, 45) = Cells(Zeile, 31) & Cells(2, 18)
Zeile = Zeile + 1
i = i + 1
Wend

End Sub


Kann mir jemand sagen, wie ich das hinbekomme?

Danke und Viele Grüße
Imke

mücke
05.04.2012, 08:48
Moin Imke,

was steht denn in AF39 und R2 ... und wie wäre es mit einer kleinen Beispielmappe ?

Immchen
05.04.2012, 09:08
Hallo Mücke,

das ist die Kalenderdatei von gestern ;)

Ich habe mir jetzt dazu noch eine Tabelle für Geburtstage erstellt.
In AF39 steht das Datum, also zb. 05.04. und in R2 das Jahr, sodass beides zusammen 05.04.2012 ergeben soll.
Ich nehme das Jahr aus der Zelle, damit sich die Geburtsdaten aus beim Einstellen eines neuen Jahres auch automatisch ändern.

Gruß Imke

Erich G.
05.04.2012, 09:10
Hi Imke,
manchmal sind Fehlermeldungern unverständlicher als die Fehler selbst...

"Die zusammengesetzten Daten erkennt die Formel leider nicht mehr."
Wie, woran äußert sich das? Fehlermeldung? Falsches Ergebnis?

"auch schon per VBA versucht, funktioniert leider auch nicht"
Ja, was passiert denn, wenn dui deinen Code laufen lässt? Fehlermeldung? (welche Zeile, welcher Fehler? Falsches Ergebnis?

Nur du kannst wissen, in welchen deiner Zellen ein Datum steht/stehen muss.
Vielleicht könntest du mal in einfachen Worten beschreiben, welche Daten vorliegen und was was überhaupt berechnet werden soll.

Immchen
05.04.2012, 09:25
Hallo,

hier einmal die Datei.
Dort soll die Spalte AX nach dem nächsten anstehen Datum durchsucht werden.
Das Problem liegt darin, dass Zellen, in die das Datum nicht direkt reingeschrieben ist, sondern aus zwei Zellen zusammengesetzt ist, von der Formel in Zelle K40 nicht berücksichtigt werden.

mücke
05.04.2012, 09:38
Moin Imke,

das "Datum" wird wahrscheinlich nicht als Zahl erkannt, ändere die Formel mal leicht ab, dann sollte es passen.
=(AF39&R2)*1
Die Datei habe ich mir jetzt nicht angesehen ;)

Immchen
05.04.2012, 09:42
Jawoll :) Das funktioniert!
Vielen Dank!

Erich G.
05.04.2012, 09:42
Hi,
das Problem ist nicht, dass ein Datum zusammengesetzt ist, sondern wie du das getan hast.

Zwei Beispiele:

<table border="1" cellspacing="0" cellpadding="0" style="font-family:Arial,Arial; font-size:10pt; background-color:#ffffff; padding-left:2pt; padding-right:2pt; "> <colgroup><col style="font-weight:bold; width:30px; " /><col style="width:73px;" /><col style="width:29px;" /><col style="width:21px;" /><col style="width:110px;" /></colgroup><tr style="background-color:#cacaca; text-align:center; font-weight:bold; font-size:8pt; "><td >&nbsp;</td><td >S</td><td >T</td><td >U</td><td >V</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >38</td><td colspan="2" style="text-align:left; ">01.01.2012</td><td colspan="2" style="text-align:left; ">Neujahr</td></tr><tr style="height:18px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >39</td><td colspan="2" style="text-align:right; ">06.04.2012</td><td colspan="2" style="text-align:left; ">Karfreitag</td></tr></table><br /><table style="font-family:Arial; font-size:10pt; border-style: groove ;border-color:#00ff00;background-color:#fffcf9; color:#000000; "><tr><td ><b>Formeln der Tabelle</b></td></tr><tr><td ><table border = "1" cellspacing="0" cellpadding="2" style="font-family:Arial; font-size:9pt;"><tr style="background-color:#cacaca; font-size:10pt;"><td >Zelle</td><td >Formel</td></tr><tr><td >S38</td><td >="01."&"01."&T2</td></tr><tr><td >S39</td><td >=Z38-2</td></tr></table></td></tr></table>
(Ich habe mal das Zentrieren rausgenommen - dann sieht man Texte links- und Zahlen rechtsbündig ausgerichtet.)

S38 ist das Ergebnis einer Verkettung (mit "&"). Und das bedeutet, dass das ein Text ist.
S39 ist das Ergebnis einer Subtraktion - also eine Zahl, kein Text.

Ein Datum in Excel ist eine Zahl. Wenn du mit einem Datum arbeiten willst, dann also nicht mit einem Text.

Statt ="01."&"01."&T2 (was auch ="01.01."&T2 ist)
solltest du
=1*("01.01."&T2) oder
=Datum(T2;1;1) schreiben. Dann wirds eine Zahl - und damit ein richtiges Datum.

Wenn du das überall duchziehst, sind vielleicht deine Probleme schon beseitigt. :cool:

mücke
05.04.2012, 10:02
Moin Erich,
... Da war ich wohl zu langsam... würde ich so nicht sagen :D
In Relation zum geschriebenen Text warst DU schneller (und vor allem ausführlicher) ;)

Schöne Feiertage wünscht Dir
Dirk

Immchen
05.04.2012, 10:10
Vielen Dank euch beiden!
Es funktioniert einwandfrei! :)

Euch schöne Ostern

Immchen
05.04.2012, 10:50
Hallo nochmal,

kann es sein, dass das unter Excel 2003 nicht funktioniert?
Dort Rechnet er mir das nicht als Datum um, sonder es kommen nur ganz viele Rauten.
Er hängt schreibt mir erst ein Datum als Zahl zb. 39577 und hängt dann einfach die 2012 aus T2 ran, sodass ich dann 395472012 habe, was natürlich kein Datum sein kann.

Was jemand woran das liegt?

Immchen
05.04.2012, 10:57
Hab das Problem gefunden.
Die Zellen waren als Datum Formatiert und nicht als Text, jetzt geht es wieder :)