2016-05-31 1 views
1

Ich habe eine große Tabelle, in der die ersten Spalten X "Eingabespalte" ist und der Bereich sich ändert.Zeilen automatisch in Excel berechnen (oder löschen), wenn sich die erste Spalte ändert

Y - Es gibt mehr Formeln und Funktionen (Vlookup) und die erste Spalte X ist ein Nachschlagewert, und dann werden andere Spalten aus anderen Blättern berechnet.

| A | B | C | D | E 
1 | X | Y | Y | Y | Y 
2 | X | Y | Y | Y | Y 
3 | X | Y | Y | Y | Y 
4 | X | Y | Y | Y | Y 

Ich bin Einfügen (und Löschen) mehr X-Werte (Ist-Daten) und dann verwende ich „Doppelklick“ für alle anderen Spalten Y berechnet werden, aber es ist nicht gut, weil die X-Bereich ist nicht das Gleiche . Ich habe versucht, es in Tabelle "Ctrl-T" zu konvertieren, aber es funktioniert nicht sehr gut für mich. Vielleicht benutze ich es nicht richtig.

Problem:

Wenn ich eine neue X-Spalte einfügen, ich brauche andere Y-Spalten automatisch berechnet werden, oder wenn ich einige X Zeilen löschen, andere Y sollte ebenfalls gelöscht. Jetzt bekomme ich so etwas wie dieses:

| A | B | C | D | E 
1 | X | Y | Y | Y | Y 
2 | X | Y | Y | Y | Y 
3 | | N/A | N/A | N/A | N/A 
4 | | N/A | N/A | N/A | N/A 

oder:

| A | B | C | D | E 
1 | X | Y | Y | Y | Y 
2 | X | Y | Y | Y | Y 
3 | X |  |  |  | 

Was ich brauche:

Wenn ich X-Wert I automatisch Y-Werte verschwinden müssen entfernen:

| A | B | C | D | E 
1 | X | Y | Y | Y | Y 
2 | X | Y | Y | Y | Y 

Wenn ich X-Wert addiere, muss ich automatisch Y-Werte berechnen:

| A | B | C | D | E 
1 | X | Y | Y | Y | Y 
2 | X | Y | Y | Y | Y 
3 | X | Y | Y | Y | Y 

Hoffe, es ist klar, danke!

Antwort

1

Für Y Spalten können Sie "IF" FORMEL

=if(A1>0,*Y COLUMN FORMULA*,"") 
+0

Es funktioniert! Danke, und so einfach, nur ein Problem, Excel ist jetzt zu langsam jetzt, ich leide :( – nicusska

+0

Was sind die Y-Spalte Formel? Und wie viele Daten gibt es? – MutjayLee

+0

Toooo viel, aber ich brauche alle von ihnen, Y ist normalerweise in etwa so: = SVERWEIS (A2; 'Blatt2'! $ A: $ F; 2; FALSCH), ich bin "vlookup" in 2 Blättern, ein Blatt hat 8000 Zeilen und ein mehr als 20 000: D und drittes Blatt Ist "Ergebnisblatt" hier erwähnt. Wenn ich IF Funktion nicht verwende, funktioniert alles gut. – nicusska

0

versuchen zu ändern Formel

=iferror(*Y formula,"") 

hinzufügen oder wenn es immer noch langsam, und wenn Sie nur X Spalten

Ändern Sie können den folgenden Code verwenden:

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Column = 1 And Target.Count = 1 Then 'CHECK IF THERE IS ANY CHANGE ON X COLUMN 
     If Target.Value = Empty Then 'CHECK IF X COLUMN HAS BEEN DELETED 
      Rows(Target.Row).Delete 'IF X COLUMN IS DELETED, DELETS WHOLE ROW 
     Else 
      Cells(Target.Row - 1, 2).Resize(1, 4).Copy Cells(Target.Row, 2).Resize(1, 4) 'IF X COLUMN IS ENTERED OR MODIFIED COPIES ABOVE Y COLUMN FORMULAS 
     End If 
    End If 
End Sub 
+0

Ich werde später versuchen, ich bin nicht in der Nähe von meinem PC (und lassen Sie es wissen! :) – nicusska

+0

Uff Ich bin mir nicht sicher, ob ich weiß, wie Verwenden Sie Ihre Funktion richtig, weil nur Kopieren und Einfügen funktioniert nicht (ich habe es vorübergehend in öffentliche Sub() geändert, aber ich kann es immer noch nicht in Makros sehen), können Sie bitte helfen? Danke. – nicusska

+0

Private Sub Worksheet_change geht an bestimmten Speicherort. Klicken Sie mit der rechten Maustaste auf das Arbeitsblatt, in dem Sie X-Spalten und Y-Spalten haben aste den Code zum Makro-Editor, der angezeigt wird.Dies wird auf Ihre Änderung in Spalte X warten und wenn es eine Änderung in Spalte X gibt, wird der Code ausgeführt. – MutjayLee

Verwandte Themen