2016-06-03 10 views
1

Ich habe diesen Titel wahrscheinlich nicht richtig geschrieben, also lassen Sie mich erklären, was ich zu tun versuche.MS Excel: Wie verändere ich Zellenreferenzen?

Ich brauche Zyklen in einer Reihe von Daten zu finden. Nehmen wir an, ich habe alle meine Daten in Spalte A einer Excel-Tabelle. Wenn eine Bedingung, nach der ich suche, in der Zelle A7 wahr ist, möchte ich prüfen, ob sie in jeder zweiten Zelle wahr ist (A9, A11, A13 und so weiter). Wenn es nicht in jeder zweiten Zelle richtig ist, möchte ich das Modell anpassen, um jede dritte Zelle zu überprüfen, die mit dieser A7-Zelle beginnt (A10, A13, A16 und usw.). Wenn die Bedingung nicht in jeder dritten Zelle erfüllt ist, dann möchte ich jede vierte Zelle überprüfen (A11, A15, A19 usw.).

Das Programmieren der Formel, um zu überprüfen, ob die Bedingung wahr ist, sollte mit IF- oder UND-Formeln etwas einfach sein. Mein Problem ist, wie ich das Modell ändern kann, um von jeder zweiten Zelle zu jeder dritten Zelle zu wechseln, und es dann auszuführen, um jede vierte Zelle zu überprüfen, und so weiter. Ich möchte, sagen wir, die Formeln in Spalte B einrichten und Zelle C1 eine Benutzereingabe sein, die bestimmt, welche Zellen in den Formeln in Spalte B verwendet werden. Gibt es eine Möglichkeit, dies zu tun?

Beispiel: Wenn Zelle C1 "2" sagt, dann überprüfen die Formeln in Spalte B jede zweite Zelle in Spalte A, und wenn ich den Wert in Zelle C1 von "2" auf "3" ändere, dann die Formeln in Spalte B wechselt vom Überprüfen jeder zweiten Zelle zum Überprüfen jeder dritten Zelle und meldet sich an mich zurück.

Ich könnte nur manuell die Zellbezüge in den Formeln in Spalte B ändern, aber das könnte verdammt lange dauern und ich denke, es gibt einen besseren Weg.

Also ich bin auf der Suche nach der Zellverweise "Variable" in gewisser Hinsicht. Statt die Zellenreferenzen hart zu codieren und zu sagen: "Sieh dir Zelle A7 an, dann sieh dir Zelle A9 an, dann sieh dir Zelle A11 an ..." Ich möchte Excel sagen "schau dir A7 an, dann hängt die nächste Zelle, die du dir ansiehst, davon ab, was ich sage . in der Zelle C1“

+0

Sie können Indirect() verwenden, um Zellen zu referenzieren. z.B. = INDIREKT ("A" & C1 * ROW (B2)) – Ampersand

Antwort

0

das Bild unten zeigt meinen Setup:

enter image description here

ich einfach Daten in Spalte A Spalte B habe bestimmt, ob die Formel in C ausgewertet werden soll. Zum Beispiel enthält B2 die folgende Formel:

=IF(MOD(ROW(A2),$D$2)=0,1,0) 

Spalte C würde die Logik enthalten, die Sie anwenden möchten. In diesem Fall gebe ich die Daten in A zurück, wenn B 1 ist; andernfalls gebe ich "" zurück:

Spalte D legt die Anzahl der Zeilen fest, die übersprungen werden sollen.

0

Wenn Sie nur eine Spalte wünschen, würde diese Formel in B1 gehen und Sie können sie nach unten ziehen. Aktualisieren Sie den Bereich $ A $ 1: $ A $ 20, um Ihren gesamten Bereich einzuschließen. Diese Formel überprüft, ob die vorherige Zelle in Ihrem Zyklus (alle 2,3,4 usw.) übereinstimmt.

=IF(AND(ROW()>$C$1,MOD(ROW(),$C$1)=0),INDEX($A$1:$A$20,ROW()-$C$1)=$A1,"") 

Verwenden Sie nicht INDIREKT ... nie.

+0

Wie ist es, wenn der Blattname basierend auf dem Wert in einer anderen Zelle variabel ist, kann ich ihn dann verwenden? Weil ich nicht glaube, dass Sie INDEX dafür verwenden können. –

+0

Blattnamen sollten niemals variabel sein. Alle Rohdaten sollten in einer einzigen Tabelle in einer einzigen Registerkarte strukturiert sein. Welche Kriterien zur Unterscheidung zwischen Tabs verwendet werden, sollte nur ein zusätzliches Feld in der Tabelle sein. – Technichor

+0

Natürlich ist dies in einer perfekten Welt und wir alle stoßen auf Tabellenkalkulationen, die wir einfach machen müssen, ohne das Ganze neu aufzubauen. Wenn ich gezwungen bin, mehrere Tabs zu betrachten, würde ich stattdessen CHOOSE verwenden. Wenn Sie 100 Tabs haben und sich die Namen ändern, geben Sie einfach auf und werfen Sie die Tabelle weg! – Technichor