wake-up-neo.com

Wie kann ich in Excel ohne VBA oder Makros eine Schleife machen?

Kann eine Gruppe von Zeilen in Excel wiederholt werden, ohne dass VBA oder Makros installiert sind? Google hat nichts hilfreiches ergeben.

=IF('testsheet'!$C$1 <= 99,'testsheet'!$A$1,"") &
IF('testsheet'!$C$2 <= 99, 'testsheet'!$A$2,"") &
IF('testsheet'!$C$3 <= 99, 'testsheet'!$A$3,"") &
... and so on through !$C$40, !$A$40 ...

Ich muss den obigen Code 40 Mal in jeder Zelle wiederholen und habe über 200 Zellen, die den Code benötigen. schnüffeln

Ich bin ziemlich gut mit PHP/SQL, lerne aber gerade Excel.

36
Jeff

Die Ergebnisse Ihrer Formel erhalten Sie, wenn Sie in einem neuen Arbeitsblatt beginnen. 

In Zelle A1 wird die Formel angegeben 

=IF('testsheet'!C1 <= 99,'testsheet'!A1,"") 

Kopieren Sie diese Zelle in Zeile 40.__In Zelle B1 geben Sie die Formel ein 

=A1

In Zelle B2 wird die Formel angegeben 

=B1 & A2

Kopieren Sie diese Zelle in Zeile 40.

Der gewünschte Wert befindet sich jetzt in dieser Spalte in Zeile 40.

Nicht wirklich die Antwort, die Sie wünschen, aber dies ist der schnellste Weg, um Excel-weise zu erledigen, ohne eine benutzerdefinierte Formel zu erstellen, die einen Bereich berücksichtigt und die Berechnung vornimmt (was mehr Spaß machen würde).

17
Nat

Ich habe nur nach etwas Ähnlichem gesucht:

Ich möchte jede ungerade Zeilenspalte zusammenfassen. 

SUMIF hat ZWEI mögliche Bereiche, den Bereich zu Summe aus und einen Bereich zu Kriterien berücksichtigen in.

SUMIF (B1: B1000,1, A1: A1000)

Diese Funktion berücksichtigt, wenn eine Zelle im B-Bereich "= 1" ist, sie summiert die entsprechende A-Zelle nur dann, wenn dies der Fall ist. 

Um "= 1" zu erhalten, um in den B-Bereich zurückzukehren, gebe ich dies in B:

= MOD (ROWNUM (B1), 2)

Wenn Sie sich automatisch füllen, um den Modul zu füllen, können Sie hier kalkulierbare Kriterien eingeben, um die SUMIF- oder SUMIFS-Bedingungen zu erhalten, die Sie zum Durchlaufen jeder Zelle benötigen. 

Einfacher als ARRAY-Sachen und verbirgt das Back-End von Loops!

5
YAtreyu

Ich werde das selbst beantworten (korrigiere mich, wenn ich falsch liege):

Es ist nicht möglich, eine Gruppe von Zeilen (wie ein Array) in Excel zu durchlaufen, wenn VBA/Makros aktiviert ist.

3
Jeff

Fügen Sie weitere Spalten hinzu, wenn Sie variable Schleifen haben, die sich mit unterschiedlichen Raten wiederholen. Ich weiß nicht genau, was Sie versuchen, aber ich glaube, ich habe etwas getan, das zutreffen könnte.

Das Erstellen einer einzelnen Schleife in Excel ist sehr einfach. Es erledigt eigentlich die Arbeit für Sie. Versuchen Sie es mit einer neuen Arbeitsmappe 

  1. Geben Sie in A1 "1" ein
  2. Geben Sie in A2 "= A1 + 1" ein

A3 wird beim Ziehen automatisch "= A2 + 1" sein. Die ersten Schritte müssen nicht so explizit sein. Excel erkennt das Muster automatisch und zählt, wenn Sie einfach "2" in A2 eingeben, aber wenn B1-B5 "100" sein soll und B5-B10 "200" (auf dieselbe Weise hochzählend), können Sie den Grund sehen zu wissen, wie es explizit geht, ist wichtig. In diesem Szenario geben Sie einfach Folgendes ein:

  1. "100" in B1, ziehen Sie zu B5 und
  2. "= B1 + 100" in B6

Beim Ziehen nach unten wird B7 automatisch "= B2 + 100" usw., dh es erhöht sich grundsätzlich alle 5 Zeilen unendlich. So erstellen Sie eine Schleife aus Zahlen 1-5 in Spalte A:

  1. Geben Sie in Zelle A6 "= A1" ein. Wenn Sie nach unten ziehen, wird es in Zelle A7 usw. automatisch "= A2" sein, da Excel dies erledigt.

Jetzt haben wir Spalte A, die die Zahlen 1-5 wiederholt, während Spalte B alle 5 Zellen um 100 zunimmt. Sie können Spalte B beispielsweise mit den Zahlen 100-900 wiederholen, indem Sie dieselbe Methode verwenden wie bei Spalte A eine Möglichkeit, zum Beispiel jede mögliche Kombination mit mehreren Variablen zu erzeugen. Ziehen Sie die Spalten nach unten und sie werden es unendlich machen. Ich gehe nicht explizit auf das gegebene Szenario ein, aber wenn Sie die Schritte befolgen und verstehen, sollte das Konzept Ihnen eine Antwort auf das Problem geben, das das Hinzufügen weiterer Spalten und das Zusammenführen oder Verwenden dieser als Ihre Variablen beinhaltet.

1
Manopolus

Sie könnten irgendwo in einer Kalkulationstabelle eine Tabelle erstellen, die diese Operation für jedes Zellenpaar ausführt, und sie mit Auto-Fill füllen. 

Aggregieren Sie die Ergebnisse aus dieser Tabelle in einer Ergebniszelle. 

Die 200-Zellen, die auf die Ergebnisse verweisen, könnten dann auf die Zelle verweisen, die die Aggregationsergebnisse enthält. In den neuesten Versionen von Excel können Sie die Ergebniszelle benennen und auf diese Weise referenzieren, um das Lesen zu erleichtern.

1
blueberryfields

@Nat gab eine gute Antwort. Da es jedoch nicht möglich ist, einen Code zu verkürzen, können Sie mit contatenate den Code generieren, den Sie benötigen. Es funktioniert für mich, wenn ich faul bin (beim Eingeben des gesamten Codes in die Zelle).

Was wir also brauchen, ist das Muster zu identifizieren. Verwenden Sie Excel, um das Muster 'Struktur' zu erstellen. Fügen Sie "=" ein und fügen Sie es in die vorgesehene Zelle ein. 

Zum Beispiel möchten Sie erreichen (ich meine, geben Sie in die Zelle ein):

=IF('testsheet'!$C$1 <= 99,'testsheet'!$A$1,"") &IF('testsheet'!$C$2 <= 99,'testsheet'!$A$2,"") &IF('testsheet'!$C$3 <= 99,'testsheet'!$A$3,"") &IF('testsheet'!$C$4 <= 99,'testsheet'!$A$4,"") &IF('testsheet'!$C$5 <= 99,'testsheet'!$A$5,"") &IF('testsheet'!$C$6 <= 99,'testsheet'!$A$6,"") &IF('testsheet'!$C$7 <= 99,'testsheet'!$A$7,"") &IF('testsheet'!$C$8 <= 99,'testsheet'!$A$8,"") &IF('testsheet'!$C$9 <= 99,'testsheet'!$A$9,"") &IF('testsheet'!$C$10 <= 99,'testsheet'!$A$10,"") &IF('testsheet'!$C$11 <= 99,'testsheet'!$A$11,"") &IF('testsheet'!$C$12 <= 99,'testsheet'!$A$12,"") &IF('testsheet'!$C$13 <= 99,'testsheet'!$A$13,"") &IF('testsheet'!$C$14 <= 99,'testsheet'!$A$14,"") &IF('testsheet'!$C$15 <= 99,'testsheet'!$A$15,"") &IF('testsheet'!$C$16 <= 99,'testsheet'!$A$16,"") &IF('testsheet'!$C$17 <= 99,'testsheet'!$A$17,"") &IF('testsheet'!$C$18 <= 99,'testsheet'!$A$18,"") &IF('testsheet'!$C$19 <= 99,'testsheet'!$A$19,"") &IF('testsheet'!$C$20 <= 99,'testsheet'!$A$20,"") &IF('testsheet'!$C$21 <= 99,'testsheet'!$A$21,"") &IF('testsheet'!$C$22 <= 99,'testsheet'!$A$22,"") &IF('testsheet'!$C$23 <= 99,'testsheet'!$A$23,"") &IF('testsheet'!$C$24 <= 99,'testsheet'!$A$24,"") &IF('testsheet'!$C$25 <= 99,'testsheet'!$A$25,"") &IF('testsheet'!$C$26 <= 99,'testsheet'!$A$26,"") &IF('testsheet'!$C$27 <= 99,'testsheet'!$A$27,"") &IF('testsheet'!$C$28 <= 99,'testsheet'!$A$28,"") &IF('testsheet'!$C$29 <= 99,'testsheet'!$A$29,"") &IF('testsheet'!$C$30 <= 99,'testsheet'!$A$30,"") &IF('testsheet'!$C$31 <= 99,'testsheet'!$A$31,"") &IF('testsheet'!$C$32 <= 99,'testsheet'!$A$32,"") &IF('testsheet'!$C$33 <= 99,'testsheet'!$A$33,"") &IF('testsheet'!$C$34 <= 99,'testsheet'!$A$34,"") &IF('testsheet'!$C$35 <= 99,'testsheet'!$A$35,"") &IF('testsheet'!$C$36 <= 99,'testsheet'!$A$36,"") &IF('testsheet'!$C$37 <= 99,'testsheet'!$A$37,"") &IF('testsheet'!$C$38 <= 99,'testsheet'!$A$38,"") &IF('testsheet'!$C$39 <= 99,'testsheet'!$A$39,"") &IF('testsheet'!$C$40 <= 99,'testsheet'!$A$40,"") 

Ich habe es nicht eingegeben, ich verwende nur das "&" - Symbol, um die sortierte Zelle in Excel zu kombinieren (eine andere Datei, nicht die Datei, an der wir arbeiten).

Beachte das : 

part1> IF('testsheet'!$C$

teil2> 1 to 40

part3> <= 99,'testsheet'!$A$

part4> 1 to 40

part5> ,"") &

  • Geben Sie Teil1 in A1, Teil3 in C1 und Teil in E1 ein.
  • Geben Sie in A2 "= A1", in C2 "C1", in E2 "E1" ein.
  • Geben Sie in B2 "= B1 + 1", in D2 "= D1 + 1" ein.
  • Geben Sie in G2 "= A2 & B2 & C2 & D2 & E2" ein
  • Geben Sie in I2 "= I1 & G2" ein

Wählen Sie nun A2: I2 und ziehen Sie es nach unten. Beachten Sie, dass die Anzahl die Erhöhung pro Zeile vorgenommen hat und der generierte Text Zelle für Zelle und Zeile für Zeile kombiniert wird.

  • I41-Inhalt kopieren,
  • füge es irgendwo ein, füge "=" vor, entferne das zusätzliche & und die Rückseite.

Ergebnis = Code wie von Ihnen beabsichtigt. 

Ich habe Excel/OpenOfficeCalc verwendet, um Code für meine Projekte zu generieren. Funktioniert für mich, hoffe es hilft anderen. (:

1
p._phidot_