Ich habe eine Liste von Artikelcodes in einer Spalte (Änderungen an einem Tag), die auf ein anderes Blatt und in mehrere Spalten verteilt werden müssen (abhängig von der Anzahl der verfügbaren Agenten an einem Tag).
Für eine bessere Illustration sehen Sie bitte diesen Screenshot:
Dann muss es an diese verteilt werden: .
Was könnte die beste Formel oder sogar VBA-Syntax dafür sein?
Antworten:
Sie müssen lediglich eine Möglichkeit hinzufügen, um die nicht verfügbaren Agenten zu markieren und einen Index für jede Zelle zu berechnen.
Ich habe zwei Zeilen über den Agentenbezeichnungen hinzugefügt. Bei der ersten Zeile können Agenten als nicht verfügbar markiert werden. Ich habe der Zellenfarbe eine bedingte Formatierung hinzugefügt und den Namen der nicht verfügbaren Agenten durchgestrichen.
Die andere ist eine Hilfszeile, die einen inkrementellen Index für verfügbare Agenten des Formulars darstellt
=IF(9:9="",MAX($C8:C8)+1,"-")
Ich habe auch eine Helper-Spalte hinzugefügt, bei der es sich lediglich um den Zeilenindex handelt, der bei 0 beginnt. (Die Helper-Spalten können direkt in die Tabellenformel eingefügt werden, machen es jedoch schwieriger zu lesen. Die Helper-Zeile und -Spalte können offensichtlich verborgen sein.
Die Formel in der Tabelle verwendet nur eine einfache
=INDEX(<docs_id_list>,MATCH(..,<docs_id_index_list>,0))
Formel.Die Tabellenformel lautet
=IFERROR(INDEX('Document List'!$B:$B,MATCH($A:$A*(COUNTA($C$10:$P$10)-COUNTIFS($C$9:$P$9,"<>"))+$8:$8,'Document List'!$A:$A,0)),"-")
(Dies setzt natürlich voraus, dass sich Ihre Dokumentenliste in den Spalten A und B eines Blatts mit dem Namen "Dokumentenliste" befindet.)
Meine Lösung verwendet eine einfache First-In / First-Out-Formel, aber es wäre möglich, die Formel unter Verwendung der Wochentagsnummer anzupassen, um die Zuordnung in einer anderen Zelle zu starten, sodass die Tabelle auf die Agenten in der linken Spalte ausgerichtet ist.
quelle