Geef je formule eens?quote:Op dinsdag 15 december 2009 21:31 schreef znarch het volgende:
[..]
Ik snap jeHij werkt alleen niet
Ik krijg de ref fout
Dus je geeft de 3 kolommen al aan ergens?quote:Op woensdag 16 december 2009 02:59 schreef Nerobacsi het volgende:
Kan iemand mij helpen met een formule?
Ik wil graag de waarden selecteren die in drie kolommen tegelijk voorkomen. Het lukt me nu wel in twee stappen via voorwaardelijke opmaak, maar ik zou het liefst een lijstje van de drie-dubbelen netjes in een aparte kolom gepresenteerd krijgen.
Waar ik het voor nodig heb: voor een forum op een torrentsite maak ik graag raadseltjes in een wedstrijd. Daarvoor heb ik van IMDB van zo'n 300 TV-series alle acteurs in excel gezet. Per kolom een serie. Voor de puzzeltjes wil ik weten welke acteurs allemaal in dezelfde drie TV-series hebben meegedaan. Ik kies zelf de drie kolommen uit.
Zo doe ik het nu:
[ afbeelding ]
Maar het moet handiger kunnen, alleen ik weet niet hoe.
Ja, ik kies willekeurig een drietal kolommen uit om te proberen of en hoeveel acteurs in alle drie daarvan gespeeld hebben. Soms zet ik die kolommen voor het gemak even naast mekaar; ze hoeven niet op alfabet te blijven of zo.quote:Op woensdag 16 december 2009 08:25 schreef DaFan het volgende:
[..]
Dus je geeft de 3 kolommen al aan ergens?
Dus je kijkt niet welke waarden in welke 3 kolommen komen, maar welke waarden in 3 vaste kolommen voorkomen?
Ik vind het een goed idee, maar dit gaat niet lukken, helaas. Ik heb het geprobeerd, maar het probleem is dat er niet altijd 10 gevulde cellen zijn. Bij minder dan 10 gevulde cellen krijg ik inderdaad 0.quote:Op woensdag 16 december 2009 08:13 schreef DaFan het volgende:
loblorenzo:
Als je in A1:A10 (of in A1034:A1044) je 10 waardes hebt staan, geeft de volgende formule in D1:D10 je laatste 10 waarden uit kolom A:
=INDIRECT(ADRES(VERGELIJKEN(9E+307;A:A)-(10-RIJ());1))
Dit werkt alleen als er 10 waarden achter elkaar staan, als er 9 staan bv dan wordt de eerste een 0 omdat de cel 10 rijen boven je laatste waarde leeg is.
Hoop dat je hier wat aan hebt.
Ik hoop het. Ik heb de macro van internet geplukt, maar dit is 'em:quote:Op woensdag 16 december 2009 12:01 schreef Deetch het volgende:
maar als je toch een macro hebt die steeds verse getallen toevoegt kun je die toch ook de verse getallen in cellen D1 tm D10 laten schrijven of ben ik nou debiel. Hoe ziet die macro voor je verse getallen eruit, ws. kun je daar door 1 regeltje toe te voegen precies krijgen wat je wilt.
| 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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | Public Const cRunIntervalSeconds = 30 ' one minute Public Const cRunWhat = "DoTheImport" ' the name of the procedure to run Sub StartTimer() RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds) Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _ Schedule:=True End Sub '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ImportTextFile ' This imports a text file into Excel. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Public Sub ImportTextFile(FName As String, Sep As String) Dim RowNdx As Long Dim ColNdx As Integer Dim TempVal As Variant Dim WholeLine As String Dim Pos As Integer Dim NextPos As Integer Dim SaveColNdx As Integer Application.ScreenUpdating = False 'On Error GoTo EndMacro: SaveColNdx = 1 RowNdx = 1 Open FName For Input Access Read As #1 While Not EOF(1) Line Input #1, WholeLine If Right(WholeLine, 1) <> Sep Then WholeLine = WholeLine & Sep End If ColNdx = SaveColNdx Pos = 1 NextPos = InStr(Pos, WholeLine, Sep) While NextPos >= 1 TempVal = Mid(WholeLine, Pos, NextPos - Pos) Cells(RowNdx, ColNdx).Value = TempVal Pos = NextPos + 1 ColNdx = ColNdx + 1 NextPos = InStr(Pos, WholeLine, Sep) Wend RowNdx = RowNdx + 1 Wend EndMacro: On Error GoTo 0 Application.ScreenUpdating = True Close #1 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' END ImportTextFile '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' End Sub Sub DoTheImport() ImportTextFile FName:=textbestand.txt", Sep:=" " StartTimer ' Reschedule the procedure End Sub |
HET WERKT!!quote:Op woensdag 16 december 2009 12:08 schreef DaFan het volgende:
Hm zou dit voor je werken Nero:
Ik heb in A2:C6 een aantal waarden staan, waarvan in alle drie kolommen een bepaalde waarde drie keer voorkomt.
Via Voorwaardelijke opmaak, kies ik A2:C6, vanaf A2, en voer dan in als formule:
=AANTAL.ALS($A$2:$C$6;A2)>2
=COUNTIF($A$2:$C$6,A2)>2)
En dan kies ik een opmaak.
Alles wat nu in alle drie de kolommen voorkomt, wordt gekleurd.
Nadeel hiervan is dat ook als een naam dubbel in de lijst staat, deze wordt gekleurd (dus zeg maar 2x in kolom 1 en 1x in kolom 2, dan kleurt ie).
Maarrrr er staan nooit 2 acteurs in dezelfde kolom toch?
Werkt dat voor je?
Met een macro kan je evt later nog dan de gekleurde cellen zoeken in een kolom en die in een apart deel als output genereren.
Was die voor mij?quote:Op dinsdag 15 december 2009 20:51 schreef Deetch het volgende:
staan die getallen allemaal in 1 regel? Dan eerst uitsplitsen naar kolommen. Daarna kun je gewoon van elke cel de kolompositie berekenen.
No problemo, succes met je quiz.quote:Op woensdag 16 december 2009 12:39 schreef Nerobacsi het volgende:
[..]
HET WERKT!!![]()
En er komen inderdaad nooit dubbelen in dezelfde kolom voor, dus dat gaat perfect zo.
Geweldig bedankt voor de (snelle!) hulp!!
quote:Op woensdag 16 december 2009 11:50 schreef DaFan het volgende:
Denk dat het ook wel anders kan.
Wil je dan alsnog de laatste 10 waardes, dus als er 8 zijn ingevuld, wil je dan ook de laatste 2 van de vorige 10?
Nee helaas niet, steeds verschillend hoeveel rijen ertussen zitten.quote:Op woensdag 16 december 2009 13:29 schreef DaFan het volgende:
Het is makkelijker om er 10 weer te geven dan 8 als er maar 8 zijn.
Ik moet er nog wel ff over nadenken...
Beginnen je gegevens wel altijd op een vaste rij, dus altijd een meervoud van 10 + 1 (1, 11, 21 etc)
| 1 |
| 1 |
Wat zou dit moeten doen dan? Want volgens mij kopieert ie de 4e kolom, namelijk D, naar kolom 4+1, namelijk E.quote:Op woensdag 16 december 2009 13:38 schreef Deetch het volgende:
voeg onder regel 45
[ code verwijderd ]
de volgende regel toe:
[ code verwijderd ]
Volgens mij werkt het dan.
Aangepaste notatie > 000quote:Op woensdag 16 december 2009 14:37 schreef GuitarJJ het volgende:
Hallo,
even een simpele vraag; wat voor celinstellingen moet je gebruiken om het getaal 030 te kunnen typen? Hij verandert het telkens in 30 of 30,0
of begin met een ' (je kan er dan alleen niet meer mee rekenen, maar ik gok dat het om kengetallen gaat)quote:Op woensdag 16 december 2009 14:37 schreef GuitarJJ het volgende:
Hallo,
even een simpele vraag; wat voor celinstellingen moet je gebruiken om het getaal 030 te kunnen typen? Hij verandert het telkens in 30 of 30,0
Als ik de regel toevoeg aan de macro, dan kopieert ie alle gevulde cellen uit kolom E naar kolom D.quote:Op woensdag 16 december 2009 14:11 schreef Deetch het volgende:
is dat wat ie doet of wat je denkt dat ie doet?
Als ik die code goed heb gelezen leest je macro een regel en voegt elke waarde tussen spaties (sep=" ") in een nieuwe regel toe. Wat die nieuwe regel doet is dezelfde data in kolom D op dezelfde rij toevoegen.
Het is een grootboekrekeningnummer waar niet meer gerekend hoeft te wordenquote:Op woensdag 16 december 2009 14:41 schreef qu63 het volgende:
[..]
of begin met een ' (je kan er dan alleen niet meer mee rekenen, maar ik gok dat het om kengetallen gaat)
Dan kan je het ook doen dmv een apostrof (')quote:Op woensdag 16 december 2009 15:09 schreef GuitarJJ het volgende:
[..]
Het is een grootboekrekeningnummer waar niet meer gerekend hoeft te worden
Ik zal mijn vorige code nog eens herschrijven om hem sneller te maken, blijkbaar heb ik jouw gekopieerde macro verkeerd begrepen. Vanavond meer.quote:Op woensdag 16 december 2009 15:07 schreef lobzorenzo het volgende:
[..]
Als ik de regel toevoeg aan de macro, dan kopieert ie alle gevulde cellen uit kolom E naar kolom D.
De lege cellen van kolom E worden niet gekopieerd, daar blijft de data die oorspronkelijk in kolom D staat gewoon staan.
Maar wat nu
Of als je wel moet rekenen: je gaat naar celeigenschappen, dan maak je de bij Getal -> aangepast een nieuw type aan dmv onder Type zoveel nullen in te geven als je nodig hebt.quote:Op woensdag 16 december 2009 15:57 schreef qu63 het volgende:
[..]
Dan kan je het ook doen dmv een apostrof (')
ik was niet in staat eerder te reageren, sorry.quote:
| 1 |
quote:Op woensdag 16 december 2009 18:00 schreef HeetBoven het volgende:
[..]
Of als je wel moet rekenen: je gaat naar celeigenschappen, dan maak je de bij Getal -> aangepast een nieuw type aan dmv onder Type zoveel nullen in te geven als je nodig hebt.
quote:
je bent nu al m'n held, of het nou lukt of nietquote:Op woensdag 16 december 2009 16:20 schreef Deetch het volgende:
[..]
Ik zal mijn vorige code nog eens herschrijven om hem sneller te maken, blijkbaar heb ik jouw gekopieerde macro verkeerd begrepen. Vanavond meer.
je moet even met extra aanhalingstekens werken:quote:Op woensdag 16 december 2009 18:44 schreef znarch het volgende:
[..]
ik was niet in staat eerder te reageren, sorry.
Ik gebruik jouw formule:
[ code verwijderd ]
In cel A1 staat de naam van de Tab waar hij moet kijken genaamd: 2009 Week 51 (of zoiets) (de cel geeft de huidige week weer).
mijn !A1 (de 2de) staat op !S32, deze cel (op sheet 2009 Week 51) is de waarde die ik wil zien.
Wellicht dat deze code sneller is:quote:Op woensdag 16 december 2009 19:16 schreef lobzorenzo het volgende:
[..]
je bent nu al m'n held, of het nou lukt of niet :D
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 'begin en eindrij zoeken van laatst toegevoegde data ActiveSheet.Range("a10000").End(xlUp).Select eindrij = ActiveCell.Row i = 0 Do While ActiveCell.Offset(-i, 0).Value <> "" i = i + 1 Loop beginrij = eindrij - i + 1 'MsgBox beginrij & ", " & eindrij 'array vullen met waarden myArray = Range("A" & beginrij & ":" & "A" & eindrij) 'kolom D leegmaken Range("D:D").Clear 'gegevens uit array plaatsen For i = 1 To UBound(myArray) Range("D" & i).Value = myArray(i, 1) Next i End Sub |
Ja dat werkt!!!quote:Op donderdag 17 december 2009 11:25 schreef Deetch het volgende:
[..]
Wellicht dat deze code sneller is:
[ code verwijderd ]
hahaha ik roeleer. Toch geen verloren dag dan zo ingeschneeuwd in Groningen.quote:Op donderdag 17 december 2009 12:19 schreef lobzorenzo het volgende:
[..]
Ja dat werkt!!!![]()
![]()
Bedankt! Echt super!
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |