Ich habe ein Datenkodierungsprojekt.
Ich werde meine Daten in Spalte A (Gerätetyp) eingeben und die formulierte Zelle würde sich in Spalte B befinden. Spalte B enthält eine Zeichenfolge, die mit dem Wert in Spalte A beginnt und an die ein gerätespezifischer Zähler angehängt wird.
Die verschiedenen Gerätetypen in Spalte A können in beliebiger Reihenfolge stehen. Der Zähler muss innerhalb des Gerätetyps hochzählen.
Immer wenn ich in einer Zeile in Spalte A neue Daten eingebe, wird der Wert in Spalte B automatisch erstellt und der Zähler für diesen Gerätetyp um 1 erhöht.
Im Beispiel beginnt die Liste mit zwei Typen A, deren Zähler 001
und sind 002
. Vier Zeilen weiter gibt es weitere Typen A, und ihre Zähler erhöhen sich auf 003
und 004
.
Dazwischen, in den Zeilen 3, 4 und 5, gibt es die Typen B, D und C. Jeder von ihnen hat einen Zähler, der bei beginnt 001
. Weiter unten gibt es zweite Typen D und C, und der Zähler wird jeweils um 1 erhöht. Dann gibt es einen zweiten und dritten Typ B, und diese Zähler werden auf 002
und erhöht 003
.
Wie kann ich die Werte in Spalte B generieren?
Antwort1
Die Formel in B2:
=IF(ISBLANK(A2),"",A2&"-"&TEXT(COUNTIF($A$2:A2,A2),"000"))
Sie können die Formel für Spalte B mit einem beliebig großen Bereich vorab ausfüllen. Anschließend wird eine leere Zelle angezeigt, bis Sie in Spalte A einen Wert eingeben.
Sie bildet den angezeigten Wert, indem sie an den Wert in Spalte A den Bindestrich und dann den Zähler anhängt. Die TEXT-Funktion mit dem Format „000“ liefert die führenden Nullen, die für einen dreistelligen Zähler benötigt werden.
ZÄHLENWENN zählt die Werte in Spalte A vom Anfang bis zur aktuellen Zeile, die mit dem aktuellen Wert in Spalte A übereinstimmen.
Antwort2
Wenn Sie das letzte Zeichen der Daten in Spalte A nehmen und dann die Zahl hinzufügen möchten, verwenden Sie am besten eine einfache Formel wie die:
RIGHT(A1,1)&"-"&TEXT(ROW(),"000")
Das Problem ist, wenn Sie A1 nicht verwenden, ziehen Sie einfach die Zeilen ab, um 1 als Startzahl zu erhalten. Wenn Ihre Daten also in Zeile 10 beginnen, sollte der Code folgendermaßen lauten:
RIGHT(A1,1)&"-"&TEXT(ROW()-9,"000")