Hoe loop je in Excel zonder VBA of macro’s?

Is het mogelijk om een groep rijen in Excel te herhalen (loopen) zonder dat VBA of macro’s zijn geïnstalleerd? Een zoekopdracht op internet leverde niets nuttigs op.

=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 ...

Zoals het is, moet ik de bovenstaande code 40 keer herhalen in elke cel en ik heb meer dan 200 cellen die de code nodig hebben.

Ik ben redelijk goed met PHP/SQL, maar ben net Excel aan het leren.


Antwoord 1, autoriteit 100%

De manier om de resultaten van uw formule te krijgen, is door in een nieuw blad te beginnen.

Plaats in cel A1 de formule

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

Kopieer die cel naar rij 40
Zet in cel B1 de formule

=A1

Plaats in cel B2 de formule

=B1 & A2

Kopieer die cel naar rij 40.

De gewenste waarde staat nu in die kolom in rij 40.

Niet echt het antwoord dat u zoekt, maar dat is de snelste manier om dingen gedaan te krijgen, wat betreft excelleren zonder een aangepaste formule te maken die een bereik inneemt en de berekening maakt (wat leuker zou zijn om te doen).


Antwoord 2, autoriteit 35%

Ik was net op zoek naar iets soortgelijks:

Ik wil elke kolom met oneven rijen optellen.

SUMIFheeft TWEE mogelijke bereiken, het bereik tot som vanen een bereik om criteria in overweging te nemenin.

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

Deze functie houdt rekening met het feit of een cel in het B-bereik “=1” is, het zal de corresponderende A-cel alleen optellen als dit het geval is.

Om “=1” terug te krijgen in het B-bereik, plaats ik dit in B:

=MOD(ROWNUM(B1),2)

Vervolgens automatisch invullen om de modulus te vullen, je zou hier berekenbare criteria kunnen plaatsen om de SUMIF- of SUMIFS-voorwaarden te krijgen die je nodig hebt om door elke cel te lopen.

Gemakkelijker dan ARRAY-dingen en verbergt de achterkant van loops!


Antwoord 3, autoriteit 25%

Ik ga dit zelf beantwoorden (corrigeer me als ik het mis heb):

Het is niet mogelijk om een groep rijen (zoals een array) in Excel te herhalen zonder VBA geïnstalleerd / macro’s ingeschakeld.


Antwoord 4, autoriteit 5%

Je zou ergens in een rekenblad een tabel kunnen maken die deze bewerking voor elk paar cellen uitvoert, en automatisch aanvullen gebruiken om het te vullen.

Voeg de resultaten van die tabel samen in een resultatencel.

De 200 so-cellen die naar de resultaten verwijzen, kunnen vervolgens verwijzen naar de cel die de aggregatieresultaten bevat. In de nieuwste versies van Excel kunt u de cel met het resultaat een naam geven en er op die manier naar verwijzen, zodat u het gemakkelijk kunt lezen.


5, Autoriteit 5%

@nat gaf een goed antwoord. Maar aangezien er geen manier is om een ​​code te verkorten, kunt u de contatsate niet gebruiken om de code te genereren die u nodig hebt. Het werkt voor mij als ik lui ben (bij het typen van de hele code in de cel).

Dus wat we nodig hebben, identificeert gewoon het patroon en GT; Gebruik Excel om het patroon ‘Structuur’ & GT te bouwen; Voeg “=” toe en plak het in de beoogde cel.

U wilt bijvoorbeeld bereiken (ik bedoel, voer in de cel in):

=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,"") 

Ik heb het niet getypt, ik gebruik gewoon “&” symbool om een gerangschikte cel in Excel te combineren (een ander bestand, niet het bestand waaraan we werken).

Merk op dat:

deel1 > IF('testsheet'!$C$

deel2 > 1 to 40

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

deel4 > 1 to 40

deel 5 > ,"") &

  • Voer deel1 in op A1, deel3 op C1, deel op E1.
  • Voer ” = A1 ” in in A2, ” = C1 ” in C2, ” = E1 ” in E2.
  • Voer ” = B1+1″ in B2 in, ” = D1+1″ in D2.
  • Voer ” =A2&B2&C2&D2&E2″ in bij G2
  • Voer ” =I1&G2″ in bij I2

Selecteer nu A2:I2 en sleep het naar beneden. Merk op dat het aantal de toename per rij heeft toegevoegd, en de gegenereerde tekst wordt gecombineerd, cel voor cel en regel voor regel.

  • I41-inhoud kopiëren,
  • plak het ergens, voeg ” = ” ervoor toe, verwijder het extra & en de achterkant.

Resultaat = code zoals je bedoeld had.

Ik heb Excel/OpenOfficeCalc gebruikt om me te helpen code te genereren voor mijn projecten. Werkt voor mij, hopelijk helpt het voor anderen. (:

Other episodes