Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Eingaben vergleichen und Werte einfügen

Eingaben vergleichen und Werte einfügen
08.08.2006 14:01:05
modj
Danke für den ersten Hinweis. Wie kann man aus der Tabelle1 die Tabelle2 konstruieren, bei Eingabe von B1, C1 usw. undzwar in beliebiger Reihenfolge. Anstatt Werte von Tabelle 1 nur "ja", "nein" oder "1" und "0" ausgeben. In Worten, wenn B1 ist 10, 11 oder 12 dann die restlichen Werte ersetzt durch 1 oder 0 wiedergeben.
Tabelle1-------------------Tabelle2
---A---B--C--D ----------A---B---C----D
1----10-11-12---------1----12---10--11
2-A--2---0---3---------2--A--1----1----0
3-B--0---5---1---------3--B--1----1----1
4-C--3---0---3---------4--C--1----1----0
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingaben vergleichen und Werte einfügen
08.08.2006 20:21:25
ingUR
Hallo!
Ich gehe einmal davon aus, dass Dir bei der Darstellung der Tabelle ein Eintragungsfehler in der Zelle "B10" in der zweiten Tabelle unterlaufen ist, denn ansonsten würde ich das Bildungsgesetz doch nicht verstanden habe, da ich annehme,
dass die zweite Tabelle die Vorzeichen der Elemente der Matrix B2:D4 enthält und zusätzlich eine Rechtsverschiebung der Spalten (einschl. Kopfzeile) erfährt.
Ob es hier eine Zellenformellösung dazu gibt, weiß ich nicht, denn diese müßte einen rechts Shift der Spalten der Matrix und des Spaltenkopfes ermögliche.
Hier also mein Lösungsvorschlag, der aus WorkSheet-Prozeduren aufgebaut ist und folgendes Bild liefert:.
 
 ABCDEFGHI
1 1011128 111210
2A203 A011
3B051 B110
4C303 C011
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Links ist die Ursprungsmatrix mit Kopfzeile. Die Zelle E1 dient als Eingabezeile für die Anzahl der Spaltenverschiebungen (Rollen) nach rechts.
Private Sub RightShift(ByRef Target As Range) Dim Matrix(3, 3) As Integer, Header(3) As Integer Dim tm(3) As Integer, th As Integer Dim rShift As Integer For c = 1 To 3 Header(c) = Cells(1, 1 + c) Next c For r = 1 To 3 For c = 1 To 3 Matrix(r, c) = Sgn(Cells(r + 1, c + 1)) Next c Next r rShift = Target.Value If rShift < 0 Then Exit Sub rShift = rShift - 3 * Int(rShift / 3) 'Verschiebe nach rechts For s = 1 To rShift 'speiche rechte Spalte in Hilfsvariablen th = Header(3) For r = 1 To 3 tm(r) = Matrix(r, 3) Next r 'Verschiebe Spalte 2 und 1 nach rechts For c = 3 To 2 Step -1 Header(c) = Header(c - 1) For r = 1 To 3 Matrix(r, c) = Matrix(r, c - 1) Next r Next c 'schreibe erste Spalte aus Hilfsvariablen Header(1) = th For r = 1 To 3 Matrix(r, 1) = tm(r) Next r Next s 'Scheibe Ergebnis in Tabelle For c = 1 To 3 Cells(1, 6 + c) = Header(c) Next c For r = 1 To 3 For c = 1 To 3 Cells(r + 1, 6 + c) = Matrix(r, c) Next c Next r End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$E$1" Then RightShift Target End Sub
Gruß,
Uwe
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige