Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1276to1280
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Maximalwert in formatierter Zelle

Maximalwert in formatierter Zelle
Thomas
Liebe Excelianer
Die Ausgangslage
In der Spalte A gebe ich die Kundennummer ein.
Die Zelle ist benutzerdefiniert formatiert: 12-000
Wenn ich also 15 eingebe, erscheint automatisch 12-015. Die Zahl "12" steht für das Jahr. Die "15" für den Kunden.
Im nächsten Jahr wäre der dritte Kunde demnach 13-003.
Das heisst, dass ich Anfang 2013 die leeren Zeilen so formatieren werde: 13-000
Damit ich nicht suchen muss, welche Nummer ein neuer Kunde erhält, habe ich in ein Feld folgende Formel eingegeben: =MAX(A4:A1001)+1
Problem
Die nächste Kundennummer wird falsch angezeigt, weil die Formatierung nicht einbezogen wird. Beispiel:
11-001
11-002
11-003
11-004
12-001
12-002
Ich benötige nun die Angabe 03 als nächste neue Nummer, weil das laufende Jahr ja 2012 ist. Damit würde nach der Eingabe von "3" schliesslich 12-003 angezeigt.
In der jetzigen Situation erhalte ich "05" als nächst höhere, was aber falsch ist, weil sich diese Formel =MAX(A4:A1001)+1 eben nur die tatsächlich eingegebene Zahl beachtet, aber nicht die Formatierung, bzw. das Jahr.
Weiss jemand, wie ich dieses Problem lösen kann?
Danke und Gruss
Thomas

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
unsinnige Vorgehensweise
01.09.2012 13:23:17
Rudi
Hallo,
so bekommst du das nie vernünftig ausgewertet.
Eine Kundennummer sollte eindeutig sein.
Das Format einer Zelle hat nichts mit deren Inhalt zu tun.
Gruß
Rudi

AW: unsinnige Vorgehensweise
01.09.2012 13:26:15
Thomas
Hallo und danke für die Antwort.
Du meinst damit, dass es auf diese Weise gar nicht lösbar ist?
Gruss Thomas

Das hat er nicht gesagt, ...
01.09.2012 15:51:16
Luc:-?
…Thomas,
(s.Sepp)! Bei einer Lösung mit Fml müsstest du stets das Zahlenformat mit einbeziehen, also bspw =MAX(--TEXT(A4:A1001;TEXT(HEUTE();"JJ")&"000"))+1-TEXT(HEUTE();"JJ")*1000, wobei hier auf den inneren Strich zu verzichten ist, weil das sonst keine Zahl ergibt, mit der gerechnet wdn kann.
Allerdings kannst du dir mit deiner Methode schnell ein Bein stellen, denn so kann ein Kunde ggf mehrere, jahresabhängige KNrn haben. Es wäre sicher besser, die KNr flfd zu bilden und das Jahr ihrer Anlage (bzw ggf auch die ihrer Wiederverwendung) in einem separaten Datenfeld festzuhalten. Aber möglicherweise hast du nur Laufkundschaft und wer 1x da war, kommt nie wieder… ;-)
Gruß Luc :-?

Anzeige
Doch vergessen! :-[ Natürl als {MxFml} 1geben!
01.09.2012 15:54:02
Luc:-?
:-?

Problem gelöst
02.09.2012 18:41:54
Thomas
Danke euch nochmals!
Ich habe die Kundennummer nun eindeutig und ohne Format vergeben. Somit habe ich eigentlich alle Probleme gelöst.
Gruss Thomas

Na, dann iss ja jut! ;-) Gruß orT
03.09.2012 16:37:00
Luc:-?
Fml wäre real wohl noch komplizierter geworden oder 'ne udF hätte rangemusst!
:-?

AW: Maximalwert in formatierter Zelle
01.09.2012 14:28:51
Josef

Hallo Thomas,
stimme Rudi vollkommen zu. Das würde ich per VBA erledigen.
Code in das Modul der Tabelle kopieren, wenn du nun in eine freie Zeile ab Spalte B etwas eingibst, wird in Spalte A die nächste Nummer eingetragen.
' **********************************************************************
' Modul: Tabelle3 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim nextNumber As Long
  
  On Error GoTo ErrExit
  
  If Target.Column > 1 And Target.Row > 1 And Target.Count = 1 Then
    Application.EnableEvents = False
    nextNumber = Evaluate("MAX(IF((LEFT(A2:A100,2)=TEXT(TODAY(),""yy""))*(A2:A100<>""""),RIGHT(A2:A100,3)*1))+1")
    If Target <> "" And Cells(Target.Row, 1) = "" Then
      Cells(Target.Row, 1) = Format(Date, "yy") & Format(nextNumber, "-000")
    End If
  End If
  
  ErrExit:
  Application.EnableEvents = True
End Sub



« Gruß Sepp »

Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige