• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Formule optimaliseren

Status
Niet open voor verdere reacties.

WhiteDragon

Gebruiker
Lid geworden
12 nov 2018
Berichten
23
Het schiet al aardig op met mijn sheet.
Hij is ook goed copy pastable of hoe je dat ook wilt noemen.

Echter wil ik op de pagina skill berekening Kolom A t/m L kunnen kopieren naar M t/m AJ etc
Maar het gaat mis bij de formule van E3 t/m K3
De formule is gemaakt in E3 en doorgetrokken naar K3
Zo staat in de formule: $B5 en $L5 om de B en L vast te houden

Kopieer ik echter het verhaal naar kolom M etc dan staat hier natuurlijk nog steeds $B5 terwijl dit inmiddels N3 moet zijn

Ik zit al te bedenken hoe ik dit met index, rij en kolom kan doen maar dit lukt mij nog niet zoals ik bij het ophalen van andere pagina's heb gedaan.
Kolom 5, 6, 7, 8, 9, 10, 11 moeten 2 geven (bij B5), en 16,17,18,19,20,21,22 moeten 13 geven (bij B5)

Iemand enig idee? (zonder macro graag)
ps. mijn excel staat op engels
 

Bijlagen

Geen antwoord op je vraag, maar een opmerking. In cel D2 staat:
Code:
=INDEX('Nieuwe spelers'!$A$2:X$15;'Skill berekening'!A2;7)-(INDEX('Nieuwe spelers'!$A$2:X$15;'Skill berekening'!A2;6)-'Skill berekening'!L2)
Waarom niet zo:
Code:
=INDEX('Nieuwe spelers'!$H$2:H$15;A2)-(INDEX('Nieuwe spelers'!$I$2:I$15;A2)-L2)
Dus niet een vast kolomgetal gebruiken, maar gewoon een rechtstreekse verwijzing naar die ene kolom waar je de gegevens uit haalt. Dit principe kan je volgens mij op meer plaatsen in je formules gebruiken, bijvoorbeeld in dit deel van de formule in cel E3:
Code:
INDEX(Training!$C2:$D$513;MATCH($L3;Training!$C$2:$C$513;0);2)
kan je vereenvoudigen tot:
Code:
INDEX(Training!$D2:$D$513;MATCH($L3;Training!$C$2:$C$513;0))

Heb ook de overbodige bladverwijzingen eruit gehaald (doet Excel als je bij het maken van een formule even naar een ander blad bent geweest, heel vervelend en maakt je formules nog lastiger te volgen)
 
Laatst bewerkt:
Feedback waardeer ik zeer, want formules worden inderdaad zeer lang.
Hoe kan je makkelijk die overbodige bladverwijzingen er uit halen? Ha dit voor L2 al handmatig gedaan, maar schijnbaar weer terug gezet

*knip*

Ik neem aan dat je bedoelt:
Code:
   =INDEX('Nieuwe spelers'!$G$2:G$15;A2)-(INDEX('Nieuwe spelers'!$F$2:F$15;A2)-L2)

Dan werkt hij wel, maar als ik D2 kopieer naar P2 dan werkt hij niet meer.
En dat was de oorspronkelijke vraag, er voor zorgen dat ik hem door kan kopieren.
Vandaar dat ik hem zo lang gemaakt heb, zodat hij zich koppelt aan het juiste nummer
 
Laatst bewerkt door een moderator:
Beste WhiteDragon,

U hoeft berichten niet te quoten als u er direct op reageert :)

m.v.g
Mastermindzh
 
Skill berekening E3:
PHP:
=E2+INDEX(Calc!$F$3:$AJ$147;22*MOD(COLUMN()-5;12);1+2*(ROW()-2))*E2
 
Sorry snb, maar dit slaat de plank compleet mis.
Er komen totaal andere waardes uit (de berekening hang af van de huidige skill + welke training + huidige leeftijd

Maar de formule mod(xxx) kende ik nog niet, dat klinkt als een interessante optie waar ik misschien wel meer mee kan.
 
Ik ben niet erg gesticht van zo'n reaktie.
Motiveren past blijkbaar niet in het trainingsschema, evenmin als fatsoen.
Had jij de indruk dat jouw vraag erg duidelijk was ?
Mijn negeerlijst is weer langer geworden.
 
Laatst bewerkt:
Niet de totaal oplossing want het bestand is nagenoeg onleesbaar.
Wel een aantal tips:
1. maak gebruik van identieke kolomkoppen
2. zet complexe formules direct achter de tabel ipv deze in het tweede tabje te doen.

De voordelen lijken mij duidelijk. Zie de versimpelde formules in het blad 'Skill berekening' Rij 2.
 

Bijlagen

Bladverwijzing eruit halen doe je simpel door zoeken en vervangen, even goed kijken of er apostrofjes om de bladnaam staat, zo niet dan simpelweg Bladnaam! Vervangen door niks.
 
Snb:
Mijn excuses, mijn bericht kan inderdaad wat lomp overkomen.
Maar zoals gezegd leek je oplossing er niet beter van te worden.
Als de vraagstelling niet duidelijk is mag je gerust vragen stellen. Het is lastig om op papier te zetten wat je in je hoofd wilt, zeker met zo'n groot onoverzichtelijk document.

VenA:
Best lastig inzien als je niet in het bestand zit inderdaad, dat probleem heb je nogal snel met een grote file. Daarom probeer ik hem hier en daar wat te finetunen.
Normaal maakte ik gewoon extra colummen om de formules duidelijker en niet te lang te maken, maar of dat nou de ideale oplossing is....
- nummering: Column()-1/12)+1 had ik inmiddels ook al toegevoegd :) wel zonder int(), want volgens mij heb je die niet nodig
1. check
2. check (probeerde juist minder extra kolommen te creeeren
Thanks voor het herformuleren, ziet er al stukken beter uit zo

jkpieterse:
Dat was hoe ik het ook deed inderdaad
 
Thanks snb voor de mod() formule

Het is me inmiddels gelukt.
In cel E3 $B2 vervangen voor
Code:
=INDEX($A$1:$FX$513;ROW();(COLUMN()-MOD(COLUMN();12)+2))
En L2 voor hetzelfde +12 aan het einde.

Conclusie:
Code:
=IF((INDEX(Training!$C2:$D$513;MATCH(INDEX($A$1:$FX$513;ROW();(COLUMN()-MOD(COLUMN();12)+12));Training!$C$2:$C$513;0);2))=E$1;E2+((INDEX(Calc!$A$2:$AJ$147;(MATCH(INT(E2);Calc!$B$3:$B$21;0)+(MATCH(E$1;Calc!$A$2:$A$147;0))-1);(MATCH(INDEX($A$1:$FX$513;ROW();(COLUMN()-MOD(COLUMN();12)+2));Calc!$E$2:$AJ$2;0)+5)))*Training!$Q2*Training!$S2*Training!$V2);E2)
Hij wordt er niet korter op...




Ander vraagje, waarom krijg je bij
Code:
mod(column();12)
de volgende resultaten: 1-2-3-4-5-6-7-8-9-10-11-0 en niet 1 t/m 12?
 
Via de ingebouwde help <F1> kan je de werking van alle functies opvragen.

Syntax
MOD(number, divisor)
The MOD function syntax has the following arguments:
## Number Required. The number for which you want to find the remainder.
## Divisor Required. The number by which you want to divide number.

Remarks
##If divisor is 0, MOD returns the #DIV/0! error value.
##The MOD function can be expressed in terms of the INT function:

MOD(n, d) = n - d*INT(n/d)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan