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

getallen reeksen samenvoegen

Status
Niet open voor verdere reacties.

NogGeenGuru

Gebruiker
Lid geworden
5 aug 2015
Berichten
130
hallo,

ik heb een aantal getallen reeksen die ik samen wil voegen en zoek hier een code voor.

excel geeft nu (bijvoorbeeld) alle getallen tussen de 1 en 100 weer.
behalve alles tussen de 30 en 45, 70 en 78, 93 en 98.

alle 100 getallen staan onder elkaar. zie alsvolgd:
1
2
3
4
5
enz...
27
28
29
<leeg>
<leeg>
<leeg>
<leeg enz>
46
47
48
49
enz...
68
69
<leeg>
<leeg>
91
92
<leeg>
<leeg>
99
100

nu wil ik dat er in 1 cel (bijv A1) alle getallen die wel weergegeven worden komen te staan.
wat er dus uiteindelijk in A1 moet komen is 1-29+46-69+79-92+99-100

iemand die weet hoe ik dit voor elkaar krijg?

ik heb een voorbeeldje bijgevoegd die het verhaal misschien iets duidelijker maakt.
 

Bijlagen

Als beginnend VBA-er kom ik op de volgende:
Code:
Sub mb()

    Dim a1 As String
    Dim grens As Range
    
    Set grens = Range("B1").End(xlDown)
    
    Do While grens.Value <> ""
        a1 = a1 & IIf(Len(a1) > 0, "+", "") & grens.Value
        If grens.Offset(1, 0).Value <> "" Then
            Set grens = grens.End(xlDown)
            a1 = a1 & "-" & grens.Value
        End If
        Set grens = grens.End(xlDown)
    Loop
    
    Range("A1").Value = a1

End Sub
 
of
Code:
Sub M_snb()
   For Each ar In Columns(2).SpecialCells(2, 1).Areas
      c00 = c00 & "_" & ar.Cells(1) & "-" & ar.Cells(ar.Cells.Count)
   Next
   [a1] = Mid(c00, 2)
End Sub

Kun je ons de zin van deze exercitie verraden, guru in spe ?
 
Laatst bewerkt:
@snb, wat een TOP methode om je scheidingsteken uit het begin van je string te krijgen met de MID-functie. Da's een stuk simpeler dan met de LEFT en LEN functies. :thumb:
 
En een formule oplossing met een hulpkolom.
In C3 en gekopieerd t/m C102:
Code:
=C2&ALS(B3<>"";ALS(B2="";ALS(C2="";"";"+")&B3;ALS(B4="";"-"&B3;""));"")
Nadeel: als je in dit bereik regels toevoegt of verwijdert, moet je de formule vanuit C3 opnieuw doorvoeren naar C102 vanwege #REF fouten.

Hierbij het bestand met mijn beide oplossingen:
Bekijk bijlage Getallen reeksen samenvoegen MB.xlsm
 
Bedankt mensen die al guru zijn

Het gaat erom dat ik een groot aantal cellen moet vergelijken en dan wil weten welke cellen wel- of niet overeen komen. Dat wil ik dan geaag in 1 cel kunnen zien.

Nou had ik nog 1 vraagje...
Ik wil een formule zowel horizontaal als verticaal doortrekken en dan dat een getal veranderd afhankelijk van de richting waarop ik hem doorvoer.

Het gaat om formule:
=als($c1=$b$11;1;0)

Als ik deze naar beneden doorvoer moet c1 c2 worden en b11 b11 blijven.
Dat werkt.

Maar als ik hem naar rechts doorvoer moet C1 C1 blijven en b11 b12 worden.

Weet iemand hoe ik dit voor elkaar krijg?
 
De $ geeft aan wat je blokkeert.

A1 naar rechts word B1, A1 naar beneden wordt A2
$A1 naar rechts blijft $A1, $A1 naar beneden wordt $A2
A$1 naar rechts wordt B$1, A$1 naar beneden blijft A$1
$A$1 blijft altijd $A$1

Als je een formule aan het invoeren/wijzigen bent, dan kun je met F4 over de 4 mogelijkheden heen lopen.

Edit: B11 naar rechts doorvoeren wordt hooguit C11, nooit B12.
 
Laatst bewerkt:
Mmmm er is dus geen mogelijkheid om b11 naar rechts door te voeren waarop ik b12 krijg?
 
Deze formule in E1 (en naar beneden c.q. rechts doorgevoerd) doet wat je aangeeft (voor B11 t/m B13, kun je natuurlijk aanpassen):
Code:
=ALS($C1=INDEX($B$11:$B$13;KOLOMMEN($E1:E1));1;0)
Maar of je daar blij van wordt? :rolleyes:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan