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

Matrixformule in een array met tekstwaarden

Status
Niet open voor verdere reacties.

weversknoop

Gebruiker
Lid geworden
18 jun 2012
Berichten
10
Hallo iedereen, ik ben bezig met een matrixformule die moet werken in een array, d.w.z. dat er in een array overal dezelfde formule staat. Maar de formule in elke cel moet wijzen naar zijn eigen rij, en zijn eigen kolom.
Ik gebruik nu de formule:
{=SOM(ALS(R3K1:RK1=RK71; zoeken naar een naam in de eerste kolom
ALS(R3K3:RK3=R201K zoeken naar een naam in de derde kolom op dezelfde rij
;1))))) . Als beide voorwaarden goed zijn moet er een 1 komen. Dit kan maar 1 keer gebeuren.

Deze formules plaatsen gebeurt op de volgende manier:
For a = 72 To 77
For b = 202 To 207
Cells(b, a).Select
Selection.FormulaArray = _
"=If(OR(R[]C71="""",INDIRECT(""R"" & 201 & ""K"",FALSE) = """"),""""," & _
"SUM(IF(R3C1:RC1=INDIRECT(""R"" & " & 201 & " & ""K71"",FALSE),IF(R3C3:RC3=R201C[],1))))))"
Next
Next
Met een array van 20 op 20 duurt dit toch een tijdje.
Als ik de formule apart in alle cellen zet zoals hierboven werkt deze formule, dan krijg ik op een bepaalde plaats een 1 wat goed is.
Als ik in een array deze formule in een keer plaats, dan werkt deze formule niet meer.
VBA met de formule
Range(Cells(202, 72), Cells(207, 78)).Select
Selection.FormulaArray = _
"=If(OR(R[]C71="""",INDIRECT(""R"" & 201 & ""K"",FALSE) = """"),""""," & _
"SUM(IF(R3C1:RC1=INDIRECT(""R"" & " & 201& " & ""K71"",FALSE),IF(R3C3:RC3=R201C[],,1))))))"

De formule in een array plaatsen is 1 bewerking, in een array van 20 op 20 apart zijn dit 400 bewerkingen wat alles vertraagd. Beide formules zijn gelijk, maar apart werken ze en in arrayvorm niet.Heeft iemand hiervoor een oplossing? Weversknoop
Een voorbeeld:
Rij201 AAAA GGGG
Rij202 BBBB DDDD Op deze rij staan BBBB en DDDD op dezelfde rij, dit resulteert in onderstaande tabel dat in de kruising van de rij met BBBB en de kolom met DDDD er een 1 staat.
Rij203 CCCC HHHH

AAAA BBBB CCCC DDDD EEEE FFFF
AAAA 0 0 0 0 0 0
BBBB 0 0 0 1 0 0
CCCC 0 0 0 0 0 0
DDDD 0 0 0 0 0 0
EEEE 0 0 0 0 0 0
FFFF 0 0 0 0 0 0
 
graag een voorbeeld bestandje.
als je toch al vba gebruikt , maak die formules dan in vba.
meestal werkt dat makkelijker en sneller.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan