Je kan het ook zonder VBA doen hoor, zelf een matrixje maken met dagnummers in kolom A en dagnamen in kolom Bquote:Op dinsdag 27 november 2012 13:01 schreef Deetch het volgende:
[..]
Dan zal hij dat bij een donderdag ook wel niet doen. Niets aan te doen tenzij je zelf een ingewikkelde functie wilt gaan schrijven in vba?
Hmm, grote kans dat het inderdaad niet werkte omdat ie geen versienummers bij aan het houden was. Jouw variatie doet dat idd wel.quote:Op dinsdag 27 november 2012 13:00 schreef Deetch het volgende:
[..]
Onderstaande codes werken in excel 2010 ook (getest een Deetch approved ;-) ). In principe doet jouw workaround hetzelfde alleen hou je het getal bij in de verborgen gegevens van je spreadsheet in plaats van op cel A8.
Als iemand cel A8 verwijderd en dan opslaat wordt het revisienummer gereset naar 1.
[ code verwijderd ]
Als ik het goed begrijp wil je het volgende:quote:Op woensdag 28 november 2012 15:53 schreef Stickers het volgende:
Hier naartoe verwezen door Deetch... Dus kleine copy paste van mijn topic, zodat het oude gesloten kan worden.
De voorwaardelijke opmaak van Excel is voor mij nog een beetje een raadsel... Daarom probeer ik het hier dus ook.
http://img59.imageshack.us/img59/121/voorbeeldn.jpg (copy/paste deze link) (copy/paste deze link)
Iemand ideeën?
als je tabel er zo uitziet:quote:Op woensdag 28 november 2012 15:59 schreef draadstalig het volgende:
Ik heb weer een mooie..
Ik heb een aantal getallen op rij staan als volgt:
Huidige getal: getal x getal y getal z
Bij de getallen horen personen (bv 1, 2 en 3) Ik wil nu een formule uitzetten waarbij hij het huidige getal vergelijkt met de nieuwe getallen. De kleinste daarvan neemt en daarvan aangeeft of het huidig, persoon 1, 2 of 3 is. De formule werkt, behalve dat wanneer persoon 1, 2 EN 3 geen aanbieding hebben (getal hebben) er alsnog persoon 1 uitkomt.
=ALS(L8<MAX($F8);INDEX($H$6:$K$6;VERGELIJKEN(L8;H8:K8;0));"Current") Dit is hem op het moment en ik ga dus ergens de fout in.
1 2 3 4 | A B C D 1 Current Pers1 Pers2 Pers3 2 5 4 6 8 3 9 13 4 6 |
1 | =INDEX($A$1:$D$1;1;VERGELIJKEN(MIN(A2:D2);A2:D2;0)) |
quote:Op woensdag 28 november 2012 16:20 schreef ralfie het volgende:
[..]
als je tabel er zo uitziet:
[ code verwijderd ]
Kun je de volgende formule gebruiken:
[ code verwijderd ]
Waar A2:D2 het bereik van je rij is.
1 2 3 | Huidige A B C D New price Persoon ¤ 20,00 ¤ 15 ¤ 10 ¤ 5 ¤ 8 ¤ 5 C ¤ 10,00 0 0 0 0 0 A |
Ok nu ben ik al een heel eind. Ik wil echter dat het 'van toepassing op'-bereik zich aanpast aan de hand van de huidige maand. De vorige maanden(gerealiseerde cijfers dus) moeten dus niet opgemaakt worden. alleen vanaf de huidige maand en verderquote:Op woensdag 28 november 2012 16:04 schreef ralfie het volgende:
[..]
Als ik het goed begrijp wil je het volgende:
alle maanden kolommen muv eerste selecteren
Daarna, voorwaardelijke opmaak, 'celwaarde niet gelijk aan' en dan vul je als waarde in de verwijzing naar de eerste cel van de eerste maand.
c'est tout.
Dit gaat het makkelijkste als je twee voorwaardelijke opmaak regels gebruikt.quote:Op woensdag 28 november 2012 17:01 schreef Stickers het volgende:
[..]
Ok nu ben ik al een heel eind. Ik wil echter dat het 'van toepassing op'-bereik zich aanpast aan de hand van de huidige maand. De vorige maanden(gerealiseerde cijfers dus) moeten dus niet opgemaakt worden. alleen vanaf de huidige maand en verder
Of vraag ik nu te veel?
Zelf heb ik al geprobeerd te kloten met adres en index, maar dat wordt een beetje erg complex.
=ADRES(6;VERGELIJKEN(INDEX($A$13:$B$24;VERGELIJKEN($J$1;$B$13:$B$24;0);1);D5:H5;0)+3)
Resultaat = $G$6
Hier heb ik november gebruikt als huidige maand
Waarom moet er B uitkomen? Omdat A3=C2? Ik volg je logica niet.quote:Op woensdag 28 november 2012 16:35 schreef draadstalig het volgende:
[..]
[ code verwijderd ]
`
Korte toelichting. Bij 10 euro huidig en A t.m D hebben geen prijs geeft hij alsnog A aan, en niet B. Formule is momenteel zo opgesteld: =ALS(L8<MAX($F8);INDEX($H$6:$K$6;VERGELIJKEN(L8;H8:L8;0));"Current")
=A1*indirect("Z"&A1)quote:Op vrijdag 30 november 2012 10:37 schreef xyntarsus het volgende:
Goeiemorgen allemaal,
ik heb een (denk ik) vrij simpele vraag, maar ik kom er even niet uit.
ik heb een variabele (7 mogelijkheden) en per mogelijkheid moet de variabele met de waarde uit een cel vermenigvuldigd worden.
Ik kan dit wel in een "als" functie stoppen, maar dat wordt zo onoverzichtelijk.
(als(A1="1";A1*Z1;(als(A1="2";A1*Z2;(als.....)
Kunnen jullie me op weg helpen met een macro'tje hiervoor?
Alvast bedankt
je omshcrijving is niet helemaal duidelijk maar kan het zijn dat de waarde die niet gevonden wordt misschien net iets anders geschreven wordt in de regel waar je hem zou willen vinden?quote:Op donderdag 29 november 2012 10:28 schreef marcb1974 het volgende:
Ik moet een grote zoekactie houden in excel. Omdat dit met 2 voorwaarden moet viel verticaal zoeken af en gebruik ik nu index met vergelijken. Hiermee gaat het zoeken goed.
Echter stopt hij op een bepaald moment en vindt dan niets meer. De waarde die een regel eerder nog gevonden werd is dan ineens niet meer te vinden, aan het eind van het bestand ziet hij ze dan wel weer. Iemand enig idee hoe dat kan? Het is nu een bestand van ruim 16.000 regels, maar dat gaan er meer worden.
Ik werk in excel 2007.
AHA! Dan heb je vert.zoeken nodigquote:Op vrijdag 30 november 2012 11:30 schreef xyntarsus het volgende:
die begrijp ik niet helemaal, wellicht ook dat ik mijn voorbeeld achteraf gezien verkeerd geformuleerd heb.
de waardes die ik in een cel invul (niet persé A1 dus) zijn vooraf vastgestelde lengtes
(600-900-1250-1600-1800-2400-3000) en hier moet uit een andere cel een prijs aangehangen worden.
(die weer uit een extern bestand komt)
das wat ik eigenlijk probeer te maken is iets dat kijkt welke lengte er ingevoerd is, vervolgens in een lijstje kijkt welke prijs erbij hoort en tot slot vermenigvuldigd met een in een andere cel vaststaand (niet variabel) aantal
ja hoor een pulldown menu is ook maar gewoon een getalquote:Op vrijdag 30 november 2012 11:46 schreef xyntarsus het volgende:
thx dit lijkt het idd te zijn.
werkt dit overigens ook met een pulldown menu?
(dan kan ik voorkomen dat mensen de verkeerde waarde invullen)
1 | [ss].000 |
De waarden zijn allemaal gelijk, komen uit 1 bestand. Er staan geen spaties voor of achter, geen afrondingen, het zijn verrichtingscodes.quote:Op vrijdag 30 november 2012 11:32 schreef Deetch het volgende:
[..]
je omshcrijving is niet helemaal duidelijk maar kan het zijn dat de waarde die niet gevonden wordt misschien net iets anders geschreven wordt in de regel waar je hem zou willen vinden?
Misschien staat er stiekem een spatie voor of achter?
Is het getal afgerond?
Kun je een voorbeeld geven van je functie en waarop het dan mis gaat?
Kan het zijn dat het mis gaat in de ALS functie?quote:Op maandag 3 december 2012 09:23 schreef marcb1974 het volgende:
[..]
De waarden zijn allemaal gelijk, komen uit 1 bestand. Er staan geen spaties voor of achter, geen afrondingen, het zijn verrichtingscodes.
De functie is: {=INDEX('DBC Services'!C:C;VERGELIJKEN(Factuur!B6994;ALS('DBC Services'!B:B=Factuur!C6994;'DBC Services'!A:A);0))}
Dan zou het atlijd fout moeten gaan. En nu gaat het maar voor een deel fout. Dat is het deel waar ik dus tegenaan blijf lopen.quote:Op maandag 3 december 2012 09:42 schreef Deetch het volgende:
[..]
Kan het zijn dat het mis gaat in de ALS functie?
Als namelijk de voorwaarde niet klopt dan heb je geen array om de waarde van vergelijken in te zoeken waardoor je geen rijnummer hebt voor je INDEX functie.
Het gaat alleen fout als Factuur!C6994 niet in 'DBC Services'!B:B zou staan of als Factuur!B6994 niet in 'DBC Services'!A:A staatquote:Op maandag 3 december 2012 09:43 schreef marcb1974 het volgende:
[..]
Dan zou het atlijd fout moeten gaan. En nu gaat het maar voor een deel fout. Dat is het deel waar ik dus tegenaan blijf lopen.
Het is een bestand dat bestaat uit veel zich herhalende waarden. Zowel in A:A als B:B. De kans dat een waarde niet voorkomt in 'DBC Services' is hierdoor klein. Van de waarden die inderdaad niet voorkomen weten we welke dat zijn en verwachten we ook een #N/B.quote:Op maandag 3 december 2012 09:49 schreef Deetch het volgende:
[..]
Het gaat alleen fout als Factuur!C6994 niet in 'DBC Services'!B:B zou staan of als Factuur!B6994 niet in 'DBC Services'!A:A staat
Soms helpt het om de functie uit te splitsen om te zien welk deel verkeerd lopt. Dus eerst een kolom met de ALS-functie, dan de VERGELIJKEN en dan de INDEX.
Wat gebeurt er als je de spreadsheet opnieuw opbouwt vanuit een lege spreadsheet?quote:Op maandag 3 december 2012 10:11 schreef marcb1974 het volgende:
[..]
Het is een bestand dat bestaat uit veel zich herhalende waarden. Zowel in A:A als B:B. De kans dat een waarde niet voorkomt in 'DBC Services' is hierdoor klein. Van de waarden die inderdaad niet voorkomen weten we welke dat zijn en verwachten we ook een #N/B.
Het probleem zit hem echt erin dat hij een deel (van rij 6980 tm 14664) altijd als #N/B geeft. Een heel aantal van de waarden uit die range is handmatig opgezocht en staat er netjes in. Zonder spaties, afronden, etc.
Ik zoek echt naar het rare, in de formule opzich zit, voor zover wij hier weten, niets fout.
1 2 3 4 5 6 7 | Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Range("IN1") = Range("IN1") + 0.1 End Sub Private Sub Save_File() ActiveWorkbook.SaveAs "C:\Users\Sven\School\Hoofdfase\Afstuderen\Planning\Planning Afstuderen - " & Format(Date, "dd-mm-yyyy") & ".xlsm" End Sub |
Ik ga het eens proberenquote:Op maandag 3 december 2012 12:06 schreef Deetch het volgende:
[..]
Wat gebeurt er als je de spreadsheet opnieuw opbouwt vanuit een lege spreadsheet?
Dus alle "kale" data (alles wat puur getal of tekst zou moeten zijn en geen resultaat van formules) kopieren en dan plakken speciaal als waarden en vervolgens de kolommen met formules opnieuw maken?
syntax:quote:Op maandag 3 december 2012 12:31 schreef qu63 het volgende:
Wat is er niet goed aan deze VBA-code?
[ code verwijderd ]
Ik wil dat iedere keer dat ik bestand opsla cel IN1 met 0,1 verhoogd wordt (het versienummer) en dat het bestand daarna (ook) opgeslagen wordt in "C:\Users\Sven\School\Hoofdfase\Afstuderen\Planning\" als "Planning Afstuderen - 03-12-2012.xlsm" in dit geval.
1 | Range("IN1").value = Range("IN1").value + 0.1 |
Dat stuk code werkt juist probleemloos op de manier zoals het in mijn post staat, het tweede deel doet t nietquote:Op maandag 3 december 2012 16:29 schreef Deetch het volgende:
[..]
syntax:
range("IN1") betekent een cel adres
range("IN1").value betekent de waarde van de cel met adres IN1
je code moet dus worden:
[ code verwijderd ]
Waar roep je de sub aan dan?quote:Op maandag 3 december 2012 17:49 schreef qu63 het volgende:
[..]
Dat stuk code werkt juist probleemloos op de manier zoals het in mijn post staat, het tweede deel doet t niet
Die staat in ThisWorkbook, niet onder modules.quote:
Nee, je moet in je beforesafe zoiets doenquote:Op maandag 3 december 2012 18:56 schreef qu63 het volgende:
[..]
Die staat in ThisWorkbook, niet onder modules.
Verder geen verwijzing naar die sub, dacht dat ie op dezelde manier zou werken als Workbook_BeforeSafe()
1 2 3 4 5 6 | sub Workbook_BeforeSafe( blah blah) application.enableevents = false cancel=true workbook.saveas naamvanjewerkboek.xls application.enableevents = true end sub |
Nee natuurlijk niet, het is nu gewoon een macro. Die moet je wel aanroepen.quote:Op maandag 3 december 2012 18:56 schreef qu63 het volgende:
[..]
Die staat in ThisWorkbook, niet onder modules.
Verder geen verwijzing naar die sub, dacht dat ie op dezelde manier zou werken als Workbook_BeforeSafe()
Top, die werktquote:Op maandag 3 december 2012 19:24 schreef ralfie het volgende:
[..]
Nee, je moet in je beforesafe zoiets doen
[ code verwijderd ]
Waarom werkte Private Sub Workbook_BeforeSave() dan welquote:Op maandag 3 december 2012 19:24 schreef DaFan het volgende:
[..]
Nee natuurlijk niet, het is nu gewoon een macro. Die moet je wel aanroepen.
bepaalde events in vba worden automatisch aangeroepen. Workbook_open wordt aangeroepen wanneer het object Workbook het 'open' event triggered. Je kunt niet zomaar subs toevoegen en verwachten dat excel/vba zomaar weet wanneer die het moet runnen.quote:Op maandag 3 december 2012 19:47 schreef qu63 het volgende:
[..]
Waarom werkte Private Sub Workbook_BeforeSave() dan welDeze werd nergens aanders aangeroepen..
Ik vond die safe_file() code ergens en ging er van uit dat die op dezelfde manier werkte als Workbook_BeforeSafe()quote:Op maandag 3 december 2012 19:51 schreef ralfie het volgende:
[..]
bepaalde events in vba worden automatisch aangeroepen. Workbook_open wordt aangeroepen wanneer het object Workbook het 'open' event triggered. Je kunt niet zomaar subs toevoegen en verwachten dat excel/vba zomaar weet wanneer die het moet runnen.
bovenaan de code editor staan van die leuke dropdown menuutjes die je altijd per ongeluk indrukt, maar die eigenlijk WEL handig zijn als je een event nodig hebt.quote:Op maandag 3 december 2012 19:58 schreef qu63 het volgende:
[..]
Ik vond die safe_file() code ergens en ging er van uit dat die op dezelfde manier werkte als Workbook_BeforeSafe()
My bad
Sven tochquote:Op maandag 3 december 2012 19:58 schreef qu63 het volgende:
[..]
Ik vond die safe_file() code ergens en ging er van uit dat die op dezelfde manier werkte als Workbook_BeforeSafe()
My bad
Sorry... Lui hequote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Public Function FileFolderExists(strFullPath As String) As Boolean On Error GoTo EarlyExit If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileFolderExists = True EarlyExit: On Error GoTo 0 End Function Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Range("IN1") = Range("IN1") + 0.1 Application.EnableEvents = False Cancel = True If FileFolderExists("C:\Users\Sven\School\Hoofdfase\Afstuderen") Then ActiveWorkbook.SaveAs "C:\Users\Sven\School\Hoofdfase\Afstuderen\Planning\Planning Afstuderen - " & Format(Date, "dd-mm-yyyy") & " - " & Format(TimeSerial(Hour(Now()), Minute(Now()), Second(Now())), "hh-mm-ss") & ".xlsm" Application.DisplayAlerts = False ActiveWorkbook.SaveAs "C:\Users\Sven\School\Hoofdfase\Afstuderen\Planning Afstuderen.xlsm" Application.DisplayAlerts = True Application.EnableEvents = True Else Application.Dialogs(xlDialogSaveAs).Show Application.EnableEvents = True End If End Sub |
quote:Op woensdag 5 december 2012 14:22 schreef marcb1974 het volgende:
Ik wil de functie =lengte() gebruiken in een =als(). Dit lukt niet omdat excel dat blijkbaar niet kan. Weet iemand waarom dit is? Is dit een bekend probleem?
1 | =ALS(LENGTE(A1)>4;"meer dan vier tekens";"vier tekens of minder") |
In C1 de volgende formule: =ALS(B1<>0;1;"") en dan doortrekken naar beneden.quote:Op donderdag 6 december 2012 10:49 schreef draadstalig het volgende:
ik heb de volgende gegevens:
1: 2:
5¤ 7¤
10¤ 0¤
8¤ 3¤
Nu wil ik indien in 2 een getal voorkomt (dus niet 0) 1 meenemen en in totaal optellen. Ik heb het al geprobeerd via sommen.als( maar dit is nog niet gelukt.
Iemand?
1 = A1:A20quote:Op donderdag 6 december 2012 10:49 schreef draadstalig het volgende:
ik heb de volgende gegevens:
1: 2:
5¤ 7¤
10¤ 0¤
8¤ 3¤
Nu wil ik indien in 2 een getal voorkomt (dus niet 0) 1 meenemen en in totaal optellen. Ik heb het al geprobeerd via sommen.als( maar dit is nog niet gelukt.
Iemand?
Werkt! Thnxquote:Op donderdag 6 december 2012 15:52 schreef Deetch het volgende:
[..]
1 = A1:A20
2 = B1:B20
=SOMPRODUCT(--(B1:B20<>0);A1:A20)
De functie kijkt of de waarde in B1 tm B20 niet 0 is en maakt er dan een 1 van als die voorwaarde klopt en een 0 als de voorwaarde niet klopt (lege cel of waarde = 0). Deze enen en nullen worden vermenigvuildigd met hert bijbehorende getal in kolom A en dan opgeteld.
Nee dat is niet juist. Hij moet dus 2 en 3 vergelijken met 1 en indien één van deze lager is kwa aantal (in euro's) dan moet hij deze pakken. Echter rekent hij ook de 0 als getal en eigenlijk moet hij 0 dus overslaan. Ik had hem zo:quote:Op donderdag 6 december 2012 18:43 schreef ralfie het volgende:
als A1:C1 je cellen zijn
[ code verwijderd ]
enteren met ctr+shift+enter
Nvm.quote:Op donderdag 6 december 2012 19:16 schreef draadstalig het volgende:
[..]
Nee dat is niet juist. Hij moet dus 2 en 3 vergelijken met 1 en indien één van deze lager is kwa aantal (in euro's) dan moet hij deze pakken. Echter rekent hij ook de 0 als getal en eigenlijk moet hij 0 dus overslaan. Ik had hem zo:
=ALS(I4+S4=0;F4;MIN(I4;S4))
I4 = 2
S4 = 3
F4 = 1
Dus 2+3 = 0 geef me dan 1 (huidig), zo niet geef me dan minimale van 2 of 3
Bij die laatste moet hij 0 dus overslaan.
Sorry ik lees het net terug en ben het veels te moeilijk aan het maken.quote:Op donderdag 6 december 2012 19:21 schreef DaFan het volgende:
[..]
Nvm.
Wat moet je output zijn dan in je eerste voorbeeld want je praat wel een beetje vaag.
Ralfie zijn oplossing had ik ook gezegd.
Kolom 1 is leeftijden (horizontale as), de andere 2 zijn absolute en relatieve aantallen?quote:Op donderdag 6 december 2012 23:34 schreef einzeinz het volgende:
Ik heb nu nog steeds problemen met het volgende
<25 17 7%
25-30 45 17%
30-35 49 19%
35-40 34 13%
40-45 35 14%
45-50 30 12%
>50 48 19%
Ik wil dat de gegevens in een staafgrafiek worden weergegeven startend bij de -25-jarigen.
Dat lukt me dus niet!
Ik moet de taak maandag indienen.
Kolom 1 zijn inderdaad leeftijden, kolom 2 zijn het aantal deelnemers en kolom 3 is het percentage.quote:Op vrijdag 7 december 2012 00:13 schreef qu63 het volgende:
[..]
Kolom 1 is leeftijden (horizontale as), de andere 2 zijn absolute en relatieve aantallen?
Even snel in elkaar gezet: klikquote:Op vrijdag 7 december 2012 00:24 schreef einzeinz het volgende:
[..]
Kolom 1 zijn inderdaad leeftijden, kolom 2 zijn het aantal deelnemers en kolom 3 is het percentage.
Nu wil ik uiteraard ook de gegevens logisch ordenen en daar loopt het mis.
Je wil de kleur van de staafdiagram af laten hangen van het percentage?quote:Op vrijdag 7 december 2012 00:55 schreef einzeinz het volgende:
Ik zat persoonlijk meer te denken aan zoiets.
[ afbeelding ]
In een staafdiagram dus
Nee klopt niet. De cellen staan niet achter elkaar maar er zit er steeds één tussen dus : gebruiken kan niet. De volgende cellen moeten dus vergeleken worden, waarbij 0 wordt uitgesloten:quote:Op donderdag 6 december 2012 19:57 schreef DaFan het volgende:
De formule van Ralfie klopt dan wel gewoon hoor, denk eraan dat je bevestigt met Ctrl-Shift-Enter.
Dat lijkt niet te kunnen, ook niet als je van de cellen een named range maakt.quote:Op vrijdag 7 december 2012 10:03 schreef draadstalig het volgende:
[..]
Nee klopt niet. De cellen staan niet achter elkaar maar er zit er steeds één tussen dus : gebruiken kan niet. De volgende cellen moeten dus vergeleken worden, waarbij 0 wordt uitgesloten:
F4 I4 en S4
Hoe werkt dit dan?
Oke, eens kijken. Kan ik die raadplegen via de functie module?quote:Op dinsdag 11 december 2012 19:39 schreef DaFan het volgende:
Dat is niet voorwaardelijke opmaak.
Kijk naar de ALS() functie.
Jawel. En via de help. En anders hier maar kan krijg je het voorgekauwd en leer je niksquote:Op dinsdag 11 december 2012 21:00 schreef Landgeld het volgende:
[..]
Oke, eens kijken. Kan ik die raadplegen via de functie module?
Je zou een import-macro kunnen maken. Nieuw Excel-document openen, macro starten en dan importeren. Na afloop macro stoppen en aanpassen zodat ie de cellen invoegt na de laatste rij.quote:Op woensdag 12 december 2012 12:25 schreef DarkSavior het volgende:
Ik download wel eens CSV files vanuit mijn bank. Deze gegevens zijn dan gescheiden met een komma, punt of puntkomma teken. Hoe kan ik deze gegevens geautomatiseerd in een tabel stoppen per kolom?
Opslaan als?quote:Op woensdag 12 december 2012 13:02 schreef DarkSavior het volgende:
Nu probeer ik kolommen weer om te zetten naar tekst met een komma als scheidingsteken en dan op te slaan als .csv file, maar ik kan de functie niet vinden. Iemand een idee?
Ja, .csv's kunnen niet omgaan met functies, die hebben alleen data.quote:Op woensdag 12 december 2012 13:11 schreef DarkSavior het volgende:
Het bestand zelf is een .xlsx bestand, als ik dan vervolgens opslaan als... .csv dan krijg ik een waarschuwing. De file bevat mogelijk functies die niet compatibel zijn.
Als het een echte csv is dan zijn de gegevens met een , gescheiden. Als je in je windows als lijstscheidingsteken ook een , hebt dan kun je het bestand direct openen met excel.quote:Op woensdag 12 december 2012 12:25 schreef DarkSavior het volgende:
Ik download wel eens CSV files vanuit mijn bank. Deze gegevens zijn dan gescheiden met een komma, punt of puntkomma teken. Hoe kan ik deze gegevens geautomatiseerd in een tabel stoppen per kolom?
en ook maar 1 tabbladquote:Op woensdag 12 december 2012 13:19 schreef qu63 het volgende:
[..]
Ja, .csv's kunnen niet omgaan met functies, die hebben alleen data.
Je syntax klopt niet helemaal: de door jou genoemde formule hoort er te staan alsquote:Op donderdag 13 december 2012 21:17 schreef Landgeld het volgende:
Ik kom er niet uit met de IF (ALS) functie..
Dit wil ik bereiken in 1 cel (Dus met 1 formule):
getal tussen 0-10 -> automatisch (in andere cel) het cijfer 1 tevoorschijn
getal tussen 10-20 -> automatisch (in andere cel) het cijfer 2 tevoorschijn
getal tussen 20-30 -> automatisch (in andere cel) het cijfer 3 tevoorschijn.
Heb net allerlei tuturials gelezen en 1 formule lukt, namelijk: =IF(A1 <10, 1)
Het combineren van de bovengenoemde voorbeelden lukt echter niet en weigert Excel 2010 (foutmelding).
Iemand enig idee hoe ik deze IF formulie werkend kan krijgen in mijn bovengenoemde voorbeeld? Ik werk met IF (Engels) en in Excel 2010.
Ik heb een oplossing die niet heel super is maar wel werkt. In de kolom C heb ik nu gezet als formule:quote:Op vrijdag 14 december 2012 01:21 schreef jakees het volgende:
Ik heb een lijst met veel waarden in 2 kolommen. In kolom A een id en in kolom B de waarde. Een voorbeeld:
ID Naam
1 Jan
1 Piet
1 Klaas
1 Henk
2 Wim
2 Leo
3 Sjors
4 Dirk
Wat ik wil is naast de ID's de waarden in 1 cel zetten dus
C D
1 Jan, Piet, Klaas, Henk
2 Wim, Leo
3 Sjors
4 Dirk
Transponeren zeg maar dan met heel veel unieke waarden in kolom A en B. Verticaal zoeken is niet te doen omdat bij de ene ID wel 20 waarden zijn dan krijg je een if met 20 then / else. Draaitabellen is volgens mij ook geen optie. Heeft iemand een idee? Thx alvast!
Die puntcomma en komma is geheel afhankelijk van je windows instellingen en wat je daar als lijstscheidingsteken (list-seperator) gebruikt. Over het algemeen is het zo dat een Nederlands ingestelde computer ALS gebruik icm ; en een Engels/Amerikaans ingestelde computer IF icm met , . Combinaties komen ook voor maar dat is imho verwarrend.quote:Op donderdag 13 december 2012 21:22 schreef Janneke141 het volgende:
[..]
Je syntax klopt niet helemaal: de door jou genoemde formule hoort er te staan als
=IF(A1<10;1) dus zonder spaties en met een ; in plaats van , tussen de argumenten.
Om een als-clausule te maken waarbij de waarde tussen twee getallen moet zitten gebruik je AND:
=IF(AND(A1>10;A1<20);2)
Bedenk je zelf even wat er moet gebeuren als A1=10?
Je kunt een eigen functie maken. Kopieer en plak onder staande code in een visual basic module van je spreadsheet.quote:Op vrijdag 14 december 2012 01:46 schreef jakees het volgende:
[..]
Ik heb een oplossing die niet heel super is maar wel werkt. In de kolom C heb ik nu gezet als formule:
=ALS(B2<>B1;A2;TEKST.SAMENVOEGEN(B1;A2)) ==> hiermee bouw ik dan het samenvoegen op net zo lang tot een nieuwe sleutel komt.
Daarnaast heb ik de volgende formule aangemaakt:
=ALS(B2<>B3;"ja";"nee")
Met die formule selecteer ik dan de laatste samenvoeging en dit geheel heb ik gekopieerd naar een ander blad en voila. Niet erg onderhoudsvriendelijk dus als jullie iets beters weten graag!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Public Function ConcatIf(varCriteria, rngConcat As Range, iOffset As Integer) As String 'concatenates strings from rngConcat if varCriteria is met in column iOffset to the range (negative values for left) Dim r As Range For Each r In rngConcat If r.Offset(0, iOffset) = varCriteria Then If ConcatIf = "" Then ConcatIf = r Else ConcatIf = ConcatIf & "," & r End If End If Next r End Function |
calculatie was ik vergeten ja..quote:Op zaterdag 15 december 2012 01:42 schreef snabbi het volgende:
1) zorg dat de calculatie uit staat wanneer je je cellen muteert
2) gebruik een reguliere expressie om je replace uit te voeren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Sub RemoveLeadingSpaces() Dim R As Range Application.EnableEvents = False On Error GoTo ErrH: If TypeOf Selection Is Excel.Range Then For Each R In Selection.Cells If R.HasFormula = False Then R.Value = Trim(R.Value) R.Value = Application.WorksheetFunction.Clean(R.Value) End If Next R End If ErrH: Application.EnableEvents = True End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Sub RemoveLeadingSpaces() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False Dim R As Range On Error GoTo ErrH: If TypeOf Selection Is Excel.Range Then For Each R In Selection.Cells If R.HasFormula = False Then R.Value = Trim(R.Value) R.Value = Application.WorksheetFunction.Clean(R.Value) End If Next R End If ErrH: Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True End Sub |
Die van snabbi is alleen handiger, scheelt weer een if-loopquote:Op maandag 17 december 2012 08:50 schreef Deetch het volgende:
Handig zeg die HasFormula, gaat in het "lijstje"
1 | =KLEINSTE(ALS('[Lijst obv SBI 2008 493 + 79 opgeschoond.xlsx]Lijst'!$B$2:$B$31357=$C2;RIJ('[Lijst obv SBI 2008 493 + 79 opgeschoond.xlsx]Lijst'!$B$2:$B$31357));RIJ($1:$1)) |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |