Hoe bedoel je dit?quote:Op donderdag 3 maart 2016 17:01 schreef Basp1 het volgende:
Je zou ook op je hoofdblad een filter kunnen zetten en dan met copy en paste naar een ander blad de gefilterde gegevens te gooien waar je alleen de waardes paste en de formule van modus in het ander blad er al in zit.
Maar kan je in een draaitabel de modus laten selecteren? Gemiddelde zag ik wel, maar modus niet.quote:
MA vervangen door 'MA ?quote:Op donderdag 17 maart 2016 17:06 schreef Janneke141 het volgende:
Uit de categorie 'onverwachte fouten':
In een document met een grote hoeveelheid data heb ik een draaitabel gezet. Van het meest eenvoudige soort: één gegeven verticaal, een horizontaal en de som van een derde veld in het draaitabelvlak. Eenvoudiger krijg je ze niet.
Maar ik heb een probleem met de sortering van de gegevens. De gegevens worden netjes van A t/m Z gesorteerd, alleen stonden er twee geheel tegen de verwachting in vooraan, in plaats van op hun alfabetische plek.
De kolomgegevens zijn lettercodes van allemaal 2 letters. Gesorteerd kreeg ik eerst 'MA', daarna 'ZA' en daarna de rest vanaf 'AA' keurig alfabetisch. Enig kloten met de fictieve codes 'DI' en 'WO' leerde me dat MA en ZA kennelijk als weekdag worden gezien en daarom vooraan worden gesorteerd. Maar dat wil ik dus niet. Hoe krijg ik ze 'normaal' gesorteerd?
Misschien kun je het beste een macrootje opnemen in dit geval voor 1 sheet en dan een for loopje er omheen voor de andere sheetsquote:Op woensdag 23 maart 2016 12:50 schreef Basp1 het volgende:
Met plakken speciaal kunnen je wel alleen formules plakken, maar dat werkt alleen binnen dezelfde bereiken goed en niet als je het naar een heel blad wil plakken.
| 1 | bwfilt.Range(bwfilt.ListObjects(1).Range.Address).RemoveDuplicates Columns:=Array(1, 2, 3, 4), Header:=xlYes |
Argument met Evaluate() omvattenquote:Op dinsdag 29 maart 2016 12:48 schreef Holy_Goat het volgende:
Vraagje:
[ code verwijderd ]
Waarom kan ik niet ARR = Array(1, 2, 3, 4) en dan columns:=ARR?
Ik probeer die columns parameter dynamisch te maken maar het lukt niet
| 1 2 | jearray=Array(1,2,3,4) range.RemoveDuplicates Columns:=Evaluate(jearray), Header:=xlYes |
Dat werkt dus ook ja, echt 10 minuten geleden kwam ik er achter dat de return van een functie wel werkte als dat een variant was (wat eigenlijk een array was). Als je die variant echter als global ergens op had geslagen (maar wel op dezelfde manier gevuld) dan werkte het niet.quote:Op dinsdag 29 maart 2016 14:25 schreef ralfie het volgende:
[..]
Argument met Evaluate() omvatten
[ code verwijderd ] idee waarom dit zo moet.
Als ik het zo lees heb je cellen een naam gegeven en verwijs je daar naar, ipv naar sheet1!A1 etc.quote:Op woensdag 30 maart 2016 17:09 schreef flipsen het volgende:
Hm, ik heb toch wel een flink probleem geloof ik. Ook nadat ik Office opnieuw geinstalleerd heb (legale versie, 365 Small Business Premium) blijf ik het volgende probleem houden:
Ik heb een sheet1, met daarin een kolom C met punten die berekend worden. Kolom A zijn de namen van de spelers, kolom B is het team (2 spelers per team), ziet er zo uit:
4-elements Ferrari 31
caspervc Toro Rosso 23
ElmarO Mercedes 24
Flipsen Sauber 34
Fopje Williams 33
Als ik nu rijen selecteer en vervolgens de data sorteer (bijvoorbeeld op kolom A, spelersnaam alfabetisch), dan doet is dat keurig. Maarrrr... In een andere sheet2 heb ik een totaalscore, waarbij ik verwijs naar de betreffende cellen uit sheet 1 van de spelers. Als ik nu in sheet1 de volgorde van spelers of punten sorteer, gaat dat NIET mee in de totaalscore van sheet2. Die blijft verwijzen naar de absolute cel.
Dit probleem heb ik sinds ik heb lopen pielen met macro´s en in de broncode van sheets. Ik dacht het op te kunnen lossen door de afzonderlijke cellen in sheet1 dan maar namen toe te kennen en daarnaar te verwijzen in sheet2. Maar wat gebeurt er? Stel cel C1 heeft de naam "score_4elements", en ik sorteer daarna die sheet bijvoorbeeld weer op spelersnaam, dan blijft de naam van de cel "score_4elements" keihard op C1 gepind staan, terwijl de data van die cel dus van plaats is veranderd...
Leg ik dat zo een beetje goed uit? Het is een compleet nieuw bestand, omdat ik dacht dat het aan het oude bestand lag waarin ik in de broncode had geprutst. Maar ook in dit nieuwe bestand én na een her-installatie, blijf ik dit verdomd irritante probleem houden. Help?
Ja, ik had het eerst op de manier sheet1!A1 gedaan, maar als dan de volgorde van de kolom in sheet A1 wijzigde, dan bleef sheet2 verwijzen naar cel A1, wat dus niet de bedoeling is, want die moet nu naar de nieuwe positie verwijzen. Vandaar dat ik het met een naam probeerde op te lossen, maar de naam blijft steevast "kleven" aan cel A1, terwijl de inhoud van die cel na een sorteer opdracht wél ergens anders komt. Beetje lastig uitleggenquote:Op woensdag 30 maart 2016 23:24 schreef qu63 het volgende:
[..]
Als ik het zo lees heb je cellen een naam gegeven en verwijs je daar naar, ipv naar sheet1!A1 etc.
Ja, je geeft de naam ook aan een range, in dit geval van 1 cel, niet aan de inhoud er vanquote:Op donderdag 31 maart 2016 01:48 schreef flipsen het volgende:
[..]
Ja, ik had het eerst op de manier sheet1!A1 gedaan, maar als dan de volgorde van de kolom in sheet A1 wijzigde, dan bleef sheet2 verwijzen naar cel A1, wat dus niet de bedoeling is, want die moet nu naar de nieuwe positie verwijzen. Vandaar dat ik het met een naam probeerde op te lossen, maar de naam blijft steevast "kleven" aan cel A1, terwijl de inhoud van die cel na een sorteer opdracht wél ergens anders komt. Beetje lastig uitleggen
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.De kolommen Rank, Bib en eventueel Nat boeien niet zo, het gaat met name om "Name" en "IBU Qualifying Points". Die tabel van de betreffende PDF'jes naar Excel converteren lukt via internet wel, dus dat is het probleem niet, maar dan het volgende:
Van alle wedstrijden op het hoogste niveau en het niveau daaronder (dus veelal niet exact dezelfde deelnemers) worden die lijsten gepubliceerd en die wil ik bijhouden om dan van elke atleet het gemiddelde resultaat te kunnen bepalen. Om nog preciezer te zijn, het gemiddelde met deze criteria:SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Oftewel, als iemand twee resultaten heeft staan wordt het gemiddelde daarvan x 1.1 gedaan en als iemand 3 of meer resultaten heeft staan wordt het gemiddelde van de beste drie genomen.
Uiteindelijk wil ik dan over de tientallen resultaten van het seizoen een ranglijst hebben van de gemiddelden.
Geen idee of ik het een beetje duidelijk uitgelegd heb, maar dit lijkt me wel iets wat mijn eigen Excelpetje te boven gaat
Edit: Ik heb al hulp aangeboden gekregen, dus ik ga even kijken hoe dat uitpakt
[ Bericht 12% gewijzigd door heywoodu op 04-04-2016 10:59:05 ]Van bijna dood op weg naar de Olympische Spelen, tot olympiër in 2026? Elk beetje hulp wordt bijzonder gewaardeerd!
https://www.gofundme.com/(...)he-spelen-na-ongeval
Hij neemt de leeftijd dan die er 4 boven staat(waarom weet niemand maar logica is niet altijd logisch met zulke verwijzingen), waarom zou je de leeftijd van Robert in eerste instantie al een verwijzing maken ipv hard er 24 neer te zetten?quote:Op dinsdag 5 april 2016 23:21 schreef flipsen het volgende:
Ben er nog niet uit hoor, gesodemieterHeel simpel voorbeeld:
Piet 24
Klaas 19
Henk 17
Robert 24
Mike 22
Simpel, kolom A de namen, kolom B de leeftijden. Omdat Robert even oud is als Piet verwijs ik in cel B4 naar B1.
Selecteer ik nu de rijen 1 tm5 en doe een sorteeractie op naam, dan krijg ik dit:
Henk 17
Klaas 19
Mike 22
Piet 24
Robert 19
Dat klopt toch niet
quote:Op maandag 4 april 2016 10:31 schreef heywoodu het volgende:
Ik zit met een situatie waarbij ik mijn doel handmatig wel zou kunnen bereiken, maar dat zou me waarschijnlijk een paar maanden kosten en dus wil ik kijken of het ook een soort van automatisch kan. Het gaat over sport, biatlon welteverstaan.
Na elke wedstrijd wordt een dergelijke lijst gepubliceerd;SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.De kolommen Rank, Bib en eventueel Nat boeien niet zo, het gaat met name om "Name" en "IBU Qualifying Points". Die tabel van de betreffende PDF'jes naar Excel converteren lukt via internet wel, dus dat is het probleem niet, maar dan het volgende:
Van alle wedstrijden op het hoogste niveau en het niveau daaronder (dus veelal niet exact dezelfde deelnemers) worden die lijsten gepubliceerd en die wil ik bijhouden om dan van elke atleet het gemiddelde resultaat te kunnen bepalen. Om nog preciezer te zijn, het gemiddelde met deze criteria:Dat lijkt mij een geneste aantal(len).als() te worden?SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Oftewel, als iemand twee resultaten heeft staan wordt het gemiddelde daarvan x 1.1 gedaan en als iemand 3 of meer resultaten heeft staan wordt het gemiddelde van de beste drie genomen.
Uiteindelijk wil ik dan over de tientallen resultaten van het seizoen een ranglijst hebben van de gemiddelden.
Geen idee of ik het een beetje duidelijk uitgelegd heb, maar dit lijkt me wel iets wat mijn eigen Excelpetje te boven gaat
Edit: Ik heb al hulp aangeboden gekregen, dus ik ga even kijken hoe dat uitpakt
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
Helpt dit? http://stackoverflow.com/(...)ss-when-sorting-listquote:Op donderdag 31 maart 2016 12:40 schreef flipsen het volgende:
Maar ik heb dit probleem eerder nooit gehad volgens mijSchematisch:
SHEET1:
A B
a 1
b 2
SHEET2:
A B
a Verwijzing naar sheet1!B1
b Verwijzing naar sheet1!B2
Als ik nu in sheet1 de rijen selecteer, sorteer op kolom B op volgorde van hoog naar laag (waarmee het dus b 2 en a 1 wordt), dan zou in sheet2 toch gewoon de juiste waardes moeten worden gegeven? Ofwel cel A1 gewoon "a" en cel B1 moet dan nu verwijzen naar sheet1!B2 ipv B1.
Ofwel, verwijzingen in sheet2 moeten automatisch worden aangepast als de volgorde in sheet1 door een sorteeropdracht verandert...
Omdat ik later misschien die waarde wil aanpassen (piet wordt een jaartje ouderquote:Op dinsdag 5 april 2016 23:37 schreef Basp1 het volgende:
[..]
Hij neemt de leeftijd dan die er 4 boven staat(waarom weet niemand maar logica is niet altijd logisch met zulke verwijzingen), waarom zou je de leeftijd van Robert in eerste instantie al een verwijzing maken ipv hard er 24 neer te zetten?
misschien dat een hulpkolom er naast waarin de leeftijden als getallen komen een quick en dirty oplossing is?quote:Op dinsdag 5 april 2016 23:40 schreef flipsen het volgende:
Hm
[..]
Omdat ik later misschien die waarde wil aanpassen (piet wordt een jaartje ouder) en dat dan ook gelijk voor Robert wil hebben...
Maar ik ben er geloof ik uit, wat mijn denkfout is geweest. Als je een cel met een naam op zijn plekkie laat staan en dus NIET meeneemt in de sorteeropdracht gaat het wel goed als de andere cel naar die naam verwijst. Raar dat ik het altijd anders heb gedacht, maar goed. Ik kan fijn helemaal opnieuw beginnen.
Dat ken ik al nietquote:Op dinsdag 5 april 2016 23:38 schreef qu63 het volgende:
[..]
Dat lijkt mij een geneste aantal(len).als() te worden?
Keep us postedquote:Op dinsdag 5 april 2016 23:59 schreef heywoodu het volgende:
[..]
Dat ken ik al niet
Er is nu iemand mee bezig die het schijnbaar leuk vindt om er in zijn vrije tijd wat mee te klooien, dus ik wacht even af wat daar uitkomt (en als het een mooi bestand oplevert ga ik eens proberen uit te vogelen wat hij gedaan heeft)
Wat wil je dat Excel doet als Jan en Mieke allebei op A willen werken?quote:Op woensdag 6 april 2016 21:17 schreef einzeinz het volgende:
Ik zou een werkplanning willen opstellen. Het zou als volgt gaan.
Medewerkers geven hun voorkeuren op wanneer zij willen werken. Elke medewerker zou een eigen werkblad hebben.
Aan de hand van formules zou ik dan de agenda willen samenstellen. Ik denk dat ik hiervoor de ALS ofwel VERT.ZOEKEN -functie nodig heb. Maar het lukt mij niet.
Dus concreet
Dus wie wil bv. zaterdag werken en op welke locatie. Mensen vullen daar in als ze willen werken en de formule zorgt er voor dat bv. Jan en Mieke verschijnen in de werkplanning. Dan kan ik kiezen wie ik daar in plan.
Als Jan locatie A kiest en Mieke locatie B dan is mijn zaterdag gevuld en verschijnt dit automatisch in de werkplanning.
Is dit mogelijk?
Als het zou kunnen wil ik dat Excel hier rekening mee houdt en beide namen in de planning zet. Het is pas dan dat ik manueel kan ingrijpen en bv. een tweede keus kan toewijzen aan één van de medewerkers.quote:Op woensdag 6 april 2016 21:48 schreef Janneke141 het volgende:
[..]
Wat wil je dat Excel doet als Jan en Mieke allebei op A willen werken?
Dat is op zijn zachtst gezegd ingewikkeld. Ik zeg niet dat het onmogelijk is - maar lastig wordt het wel. Ik moet hier nog even over nadenken.quote:Op woensdag 6 april 2016 22:14 schreef einzeinz het volgende:
[..]
Als het zou kunnen wil ik dat Excel hier rekening mee houdt en beide namen in de planning zet. Het is pas dan dat ik manueel kan ingrijpen en bv. een tweede keus kan toewijzen aan één van de medewerkers.
Ideaal zou zijn is dat de medewerkers 2 of 3 keuzes kunnen geven. Als er dubbele namen voorkomen dan kan ik bv. 2de keus of zelfs 3de keus manueel gaan toewijzen.
Het probleem is dat Excel niet weet wat hij moet verwachten: 0, 1, 2 of misschien wel 23 enen in vakjes. Wanneer stopt hij met ALSen of ZOEKen?quote:Op woensdag 6 april 2016 22:39 schreef einzeinz het volgende:
Kan het met de ALS-functie, en belangrijker nog. Kan ik met die ALS-functie gegevens ophalen van meerdere werkbladen?
Ik zou bv. kunnen vragen van geef je top 3 per dag in.
Dan maak ik in het eerste werkblad mijn werkplanning.
bv. 06/04/2016
=ALS cel B2 gelijk is aan 1. Dan neem hij die informatie over uit cel A1 (dan komt daar de uren + locatie).
Als ik dan zowel Marc als Mieke en Jan daar een 1 zetten. Dan verschijnt toch al hun naam in het vakje bij 6 april. Dan heb ik 3 namen die ik kan inplannen.
Maar ik kan dan bv. nethetzelfde gaan doen met deze functie ALS en die vermelden onder reserve 1 en reserve 2?
Als ik die geneste functie kan doorvoeren over meerdere werkbladen denk ik dat het wel moet lukken. Tenzij het verticaal zoeken misschien nog net iets verder gaat?
quote:Op maandag 4 april 2016 10:31 schreef heywoodu het volgende:
Ik zit met een situatie waarbij ik mijn doel handmatig wel zou kunnen bereiken, maar dat zou me waarschijnlijk een paar maanden kosten en dus wil ik kijken of het ook een soort van automatisch kan. Het gaat over sport, biatlon welteverstaan.
Na elke wedstrijd wordt een dergelijke lijst gepubliceerd;SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.De kolommen Rank, Bib en eventueel Nat boeien niet zo, het gaat met name om "Name" en "IBU Qualifying Points". Die tabel van de betreffende PDF'jes naar Excel converteren lukt via internet wel, dus dat is het probleem niet, maar dan het volgende:
Van alle wedstrijden op het hoogste niveau en het niveau daaronder (dus veelal niet exact dezelfde deelnemers) worden die lijsten gepubliceerd en die wil ik bijhouden om dan van elke atleet het gemiddelde resultaat te kunnen bepalen. Om nog preciezer te zijn, het gemiddelde met deze criteria:En met dank aan iemand anders gelukt, in één keer exact zoals ik het wildeSPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Oftewel, als iemand twee resultaten heeft staan wordt het gemiddelde daarvan x 1.1 gedaan en als iemand 3 of meer resultaten heeft staan wordt het gemiddelde van de beste drie genomen.
Uiteindelijk wil ik dan over de tientallen resultaten van het seizoen een ranglijst hebben van de gemiddelden.
Geen idee of ik het een beetje duidelijk uitgelegd heb, maar dit lijkt me wel iets wat mijn eigen Excelpetje te boven gaat
Edit: Ik heb al hulp aangeboden gekregen, dus ik ga even kijken hoe dat uitpakt![]()
Resultaten worden door de biatlonbond in PDF online gezet, dat is makkelijker naar Excel te converteren. Dat Excel-bestand kan ik dan importeren in de sheet die voor mij gemaakt is en met 1 druk op de knop worden dan alle standen berekend en in een nieuw bestand geopend
Van bijna dood op weg naar de Olympische Spelen, tot olympiër in 2026? Elk beetje hulp wordt bijzonder gewaardeerd!
https://www.gofundme.com/(...)he-spelen-na-ongeval
Als de code openbaar gemaakt kan worden zou dat fijn zijnquote:Op vrijdag 8 april 2016 14:40 schreef heywoodu het volgende:
[..]
En met dank aan iemand anders gelukt, in één keer exact zoals ik het wilde
Resultaten worden door de biatlonbond in PDF online gezet, dat is makkelijker naar Excel te converteren. Dat Excel-bestand kan ik dan importeren in de sheet die voor mij gemaakt is en met 1 druk op de knop worden dan alle standen berekend en in een nieuw bestand geopend
Je kan de hele kalender maken en volgooien met vert.zoeken() formules. Als je het wil krijgen zoals in jouw screenshot ben je (of iig ik) langer bezig met het mooi maken dan het werkend te krijgenquote:Op zondag 10 april 2016 00:17 schreef einzeinz het volgende:
Ik ben met iets nieuws bezig.
Ik heb een werkplanning voor het personeel. Gegevens zijn als volgt geranschikt in het werkblad 'werkplanning 2016'
- kolom A staan alle data van 2016
- Rij 1 staat de locatie waar die persoon met werken bv. in winkel 1, 2, 3 of bv. een stad (ik zeg maar wat)
- Rij 2 staan de uren want het personeel kan ofwel een dagdienst hebben, een vroege dienst ofwel een late dienst
Alle cellen (het bereik) zijn de namen van de werknemers. Deze planning wordt geregeld aangepast (dienstwissels) en het is gebeurd dat werknemers zich vergissen of de tabel niet zo goed afgelezen hebben.
Daarom zou ik ook in een nieuw werkblad een werkrooster (per maand) per werknemer willen integreren.
In cel A1 bv. kunnen ze hun naam kiezen uit een keuzelijstje (gegevensvalidatie). Dit werkt maar ik zou vervolgens willen dat Excel ook de data mooi in agenda vorm gaat plaatsen en ook de locatie en het tijdstip vermeld in de cellen.
Is dit mogelijk? Ik ben nu al even aan het zoeken maar ik kan het niet vinden hoe ik die naam aan de juiste informatie kan koppelen.
Het is hoogst waarschijnlijk met VB maar ik zit helaas vast.
Zie dit voorbeeld
[ afbeelding ]
De werknemer kiest zijn naam en liefst ook de maand en hij ziet zijn eigen rooster. Zo kan hij/zij dit afdrukken.
Ik zal het hem even vragenquote:Op zondag 10 april 2016 16:54 schreef qu63 het volgende:
[..]
Als de code openbaar gemaakt kan worden zou dat fijn zijn
https://www.dropbox.com/s(...)ZwHX_KEA3eyewMa?dl=0quote:Op zondag 10 april 2016 16:54 schreef qu63 het volgende:
[..]
Als de code openbaar gemaakt kan worden zou dat fijn zijn
If it works, it works! Thanks voor t delenquote:Op zondag 10 april 2016 17:35 schreef heywoodu het volgende:
[..]
https://www.dropbox.com/s(...)ZwHX_KEA3eyewMa?dl=0
IBU Points Template is het bestand dat de lijst uiteindelijk creeërt, ik heb er even de resultaten van twee willekeurige wedstrijden van afgelopen seizoen bij gezet. Die kunnen geïmporteerd worden, juiste jaar invullen, juiste trimester invullen (1 in het geval van de twee bijgevoegde resultaten) en op "Standings" klikken
Degene die het gemaakt heeft zei er bij dat het niet perfect of professioneel is of iets dergelijks, maar voor mij doet het exact wat het moet doen dus dat boeit me niet zo
Met verticaal zoeken in een tabel waar de postcodes en plaatsnamen in staan?quote:Op woensdag 13 april 2016 16:00 schreef einzeinz het volgende:
Sorry dat ik jullie terug stoor.
Ik zou graag hebben, dat als ik een postcode typ in Excel, hij automatisch de gemeente gaat geven. Is daar een goeie tutorial voor?
Het zijn zowel alle Nederlandse als Belgische postcodes (aangezien onze klanten uit beide landen komen).
Uiteraard is het ook zo dat er soms dubbele postcodes zijn waarbij meerdere gemeenten zijn. Het zou leuk zijn mocht er dan een keuzelijstje zijn.
=som(Kolom3)/(max(Kolom2)-min(Kolom2))*365.25quote:Op vrijdag 15 april 2016 10:56 schreef superZjozz het volgende:
Beste iedereen,
Ik wil graag een formule om een prognose te maken van het aantal uren dat ik in een jaar met iets bezig ben.Oftewel:
Kolom 1 Kolom 2 Kolom 3
Activiteit 1 1 januari 3 uur
Activiteit 2 7 januari 1 uur
Activiteit 3 10 januari 2 uur
Totaal: 6 uur
Prognose jaartotaal: 6 uur/10 dagen*365 *
Maar dan een formule die ook werkt als ik een 4e activiteit invul.
Alvast bedankt voor het meedenken!
SUMIF()quote:Op dinsdag 26 april 2016 22:21 schreef Cikx het volgende:
Ik heb een vraagje:
Ik heb 2 kolommen met data (zeg A en B) die niet op alle plekken gevuld zijn. Nu heb ik een IF functie toegepast die me een 1 geeft wanneer A1 en B1 tegelijkertijd een willekeurige waarde in hun cel hebben staan en de functie geeft me een 0 wanneer er in beide of in 1 van beide cellen geen waarde staat, dus: =IF (AND(A1>0;B1>0);1;0).
Deze functie heb ik naar beneden gesleept (zeg in kolom D) en beslaat nu zo'n 2000 rijen met 1-en en 0-len overeenkomstig met de data. Op het einde tel ik alle 1-en op, dus ik neem de som van de hele kolom om zo te zien hoe vaak er een waarde in kolom A en tegelijkertijd in kolom B staat en dat werkt eigenlijk prima. Maar nu vroeg ik me af of het mogelijk is om dit alles in 1 formule te zetten. Zodat ik geen 2000 rijen hoef te beslaan om vervolgens alle cellen op te tellen.
Ik hoop dat de vraag een beetje duidelijk is, als het nodig is kan ik misschien wat meer informatie geven, misschien met screenshots.
Alvast Bedankt!
Als je een beetje ervaring hebt met vba, dan je hele csv export doen via macro. En dan met stream read/write voorbeeld de text inlezen en dan iets van StrStream = left(StrStream, len(StrStream )-2)quote:Op dinsdag 26 april 2016 13:34 schreef Modus het volgende:
Ik denk dat het ergens best werkbaar zal zijn voor de gebruiker om deze eenmalige handeling nog in Notepad te doen, omdat we met deze csv sowieso al heel veel tijd gaan winnen, maar ik heb ergens het idee dat ook dit probleem gewoon opgelost zou moeten kunnen worden.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Sub test() Dim filenaam As String Dim StrStream As String filenaam = "D:\Folder\book1.csv" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objfile = objFSO.OpenTextFile(filenaam, 1) Do Until objfile.AtEndOfStream StrStream = StrStream & objfile.ReadLine & vbCrLf Loop Debug.Print StrStream objfile.Close Set objFSO = CreateObject("Scripting.FileSystemObject") 'Opnieuw zelfde CSV (leeg) aanmaken om in te schrijven Set objfile = objFSO.CreateTextFile(filenaam, True) 'Hier gebruike Write, niet Writeline 'Met 2 karakters inkorten. Enter (vbcrlf = 2 karakters lang) objfile.Write (Left(StrStream, Len(StrStream) - 2)) 'objfile.Write (1) objfile.Close End Sub |
Dankje! Het wil echter nog niet zo vlotten aangezien ik steeds 0 uit krijg op welke manier ik de de functie ook verander.quote:
Eigenlijk bedoelde ik SUMPRODUCT()quote:Op woensdag 27 april 2016 13:51 schreef Cikx het volgende:
[..]
Dankje! Het wil echter nog niet zo vlotten aangezien ik steeds 0 uit krijg op welke manier ik de de functie ook verander.
Is het mogelijk om als "criteria" in de SUMIF functie de functie IF(AND(A1>0;B1>0);1;0) te nemen? Alhoewel, dan kijkt die ook maar naar één cel, dus misschien iets als: IF(AND(A1:A2000>0;B1:B2000>0);1;0). Ben de draad kwijt
Ha interessant. Wat ik tot nu toe heb gaat ook via VBA, en stream gedoe ken ik wel maar gebruik het niet vaak dus ook niet meteen aan gedacht.quote:Op woensdag 27 april 2016 12:13 schreef The_vice het volgende:
[..]
Als je een beetje ervaring hebt met vba, dan je hele csv export doen via macro. En dan met stream read/write voorbeeld de text inlezen en dan iets van StrStream = left(StrStream, len(StrStream )-2)
en dan StrStream weer wegschrijven.
[ code verwijderd ]
(Wel eerst in VBA in -> References -> "Microsoft Scripting RunTime" aanvinken.)
Gelukt! Bedankt!quote:Op woensdag 27 april 2016 14:37 schreef qu63 het volgende:
[..]
Eigenlijk bedoelde ik SUMPRODUCT()
=SOMPRODUCT(--(A1:A2000<>"");--(B1:B2000<>""))
Door in de laatste stap het opnieuw te open (met zelfde filenaam), maar dan middels "ForWrite" wordt alles overschreven met de inhoud van je stream.quote:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | Sub RangeToArray() Dim myArray() As Variant Dim tempTekst As Variant Dim tekst As String myArray = Range("A1:D14") 'of welke range je hebt Dim i, j Dim kolommen Dim rijen kolommen = UBound(myArray, 2) rijen = UBound(myArray, 1) For i = 1 To rijen For j = 1 To kolommen 'variant naar string (Cstr) tekst = tekst & myArray(i, j) & ";" 'en andere gewenste opmaak Next j 'laatste ";" weghalen tekst = Left(tekst, Len(tekst) - 1) 'linefeed toevoegen tekst = tekst & vbCrLf Next i 'laatste linefeed weer weghalen tekst = Left(tekst, Len(tekst) - 2) 'en door naar je stream 'of "immediate window" Debug.Print tekst End Sub |
Na enig zoeken en testen heb ik een code gevonden die werkt:quote:Op vrijdag 29 april 2016 11:25 schreef Puckzzz het volgende:
Excel 2013 Engels.
Is er een manier om ervoor te zorgen dat de data die ik omzet naar een tabel altijd tot de laatste cel in die tabel gaat? Ik heb hier een macro voor maar de tabellen verschillen dus elke keer in het aantal regels.
De complete macro verzamelt verschillende tekst bestanden, laadt deze allemaal onder elkaar in 1 sheet, zet de data om naar kolommen en vervolgens zet ik die kolommen om naar een tabel.
Nu is het zo dat die lijsten elke keer verschillend zijn qua aantal regels. Uit voorzorg selecteer ik tot regel 10.000 voordat ik het omzet naar tabel. Maar daarna maak ik nog weer een overzicht in een pivot, die pivot telt natuurlijk al die lege regels ook mee. Dat kan ik uitzetten in het filter maar ik heb liever dat tijdens het omzetten naar tabel gewoon alle gevulde regels worden omgezet.
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$L$10000"), , xlYes).Name _
= "Table1"
De range zou ik dus graag aangepast hebben zodat ie elke keer de laatste cel met data van de tabel vindt.
quote:ActiveSheet.ListObjects.Add(xlSrcRange, Range([A1].End(xlDown), [A1].End(xlToRight)), , xlYes).Name = "Table1"
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Realisatie Norm Tijd % gehaald 8:06:00 8:00 8:00 100 8:02:00 8:00 8:01 99 8:01:00 8:00 8:02 98 8:03:00 8:00 8:03 97 11:01:00 8:00 8:04 96 7:26:00 8:00 8:05 95 7:09:00 8:00 8:06 94 6:55:00 8:00 8:07 93 6:35:00 8:00 8:08 92 6:35:00 8:00 8:09 91 6:51:00 8:00 8:10 90 8:30:00 8:00 8:11 89 7:00:00 8:00 8:12 88 8:13 87 8:14 86 8:15 0 |
Tijdstipquote:Op vrijdag 29 april 2016 18:35 schreef Modus het volgende:
^^Zijn de gegevens in kolom A en B een tijdstip of een tijdsduur?
In E2 zou dan zoiets moeten komenquote:
| 1 | =ALS(A2<=B2;100;VERT.ZOEKEN(A2;C:D;2;ONWAAR)) |
Zonder hier naar te kijken vanmorgen een scriptje gemaakt met FSO en dat werkte zoals ik wilde, dus ook zonder die laatste enter nu. Thanks. Als dat vinkje een vereiste is, neem ik aan dat het toen aanstond.quote:Op woensdag 27 april 2016 12:13 schreef The_vice het volgende:
(Wel eerst in VBA in -> References -> "Microsoft Scripting RunTime" aanvinken.)
Kan ook zijn dat een ander process het nog open had (bijv. preview in Windows Explorer.) Of dat tijdens debuggen het bestand nog niet goed was afgesloten.quote:
Als de formulerijen in alle 50 sheets écht op dezelfde adressen staan.quote:Op woensdag 23 maart 2016 10:59 schreef Doevelaer het volgende:
Wie weet of dit kan en hoe het dan werkt:
Ik wil graag opmaak, formules e.d. van het werkblad A naar werkblad B kopiëren, echter zonder dat de gegevens in werkblad B overschreven worden.
.......
Hm lastig, nog nooit eerder zoiets gedaan. Ik denk dat ik 2 opties heb om uit te werken:quote:Op vrijdag 29 april 2016 20:59 schreef The_vice het volgende:
Speciale karakters zijn vaak struikelpunten in code. Je wilt niet weten hoe vaak ik me blind zit te staren op dubbele spaties, Non-Breaking spaties etc. Wat ik soms dan doe is "vbLf" of chr(10) even tijdelijk vervangen door de tekst "[Linefeed]". En dan verderop weer terug omzetten Replace(.... "[Linefeed]" -->chr(10) ) o.i.d. Niet al te sjiek, maar zorgt er wel voor dat je weer verder kan.
Integendeel, lijkt me juist heel onlogisch dat die op het einde van de regel slaat en niet op een 'losse entry'. Heb je het al geprobeerd?quote:Op vrijdag 29 april 2016 19:44 schreef Modus het volgende:
Bij het inlezen van de csv kan ik nog een paar dingen instellen, zoals de seperator (werkt verder goed nu) en de line break, maar ik neem aan dat die slaat op einde van de hele regel en niet op 1 'losse entry'.
Ja. Hij liep vast op de 2e regel in de csv (dus de 1e regel met data). Toen gezorgd dat de cel die daarbij hoort geen line breaks had, en opnieuw geprobeerd. Toen begon de appl. te miepen over hetzelfde item, maar dan 1 regel lager. De meldingen die die app. geeft zijn nogal summier, maar geeft wel aan welke regel (en welk item op die regel) van de csv problemen geeft.quote:Op vrijdag 29 april 2016 22:09 schreef ralfie het volgende:
[..]
Integendeel, lijkt me juist heel onlogisch dat die op het einde van de regel slaat en niet op een 'losse entry'. Heb je het al geprobeerd?
Heb je notepad++? Daarin kan je met knop "¶" (Show all characters) controleren wat in je csv zit (of terecht is gekomen).quote:Op vrijdag 29 april 2016 22:17 schreef Modus het volgende:
[..]
Ja. Hij liep vast op de 2e regel in de csv (dus de 1e regel met data). Toen gezorgd dat de cel die daarbij hoort geen line breaks had, en opnieuw geprobeerd. Toen begon de appl. te miepen over hetzelfde item, maar dan 1 regel lager. De meldingen die die app. geeft zijn nogal summier, maar geeft wel aan welke regel (en welk item op die regel) van de csv problemen geeft.
Is gratis te downloaden en ook als portable van usb stick te draaien, mocht je niet kunnen installeren.quote:
Kan wel kloppen, de Array is als een Variant gedefinieerd, die zal dus zelfstandig nummer afronding toepassen, als een waarde numeriek is. In je directe opgeslagen CSV wordt het aantal cijfers achter de komma zoals je in Excel hebt ingesteld (per veld) als tekst opgeslagen.quote:Verder moeten ingevoerde getallen altijd 3 cijfers achter de komma hebben voor de app. Mijn eerste versie deed dat zonder problemen, maar jouw script door elke cel uit te lezen naar een tekststring pakt die niet, ondanks ingestelde veldsettings. Moet ik ook nog uitzoeken.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | For j = 1 To kolommen 'met aangepaste formatting 'rij 1 is header in voorbeeld, 'vanaf kolom 2 data If j > 1 And i > 1 Then 'format "#,##0.00" naar wens tekst = tekst & _ Format(myArray(i, j), "#,##0.00") _ & ";" Else tekst = tekst & myArray(i, j) & ";" End If 'en andere gewenste opmaak Next j |
iig wel VBA: https://support.microsoft.com/en-us/kb/2815384quote:Op zaterdag 30 april 2016 13:56 schreef Janneke141 het volgende:
Is er een formule om het aantal cellen in een reeks te tellen met een bepaalde opmaak?
Een collega van mij is zo slim geweest om een heel schema te maken met gekleurde vakjes zonder waarde...
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |