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

output van een matrix het liefst zonder vba indien mogelijk

Status
Niet open voor verdere reacties.

Depant

Verenigingslid
Lid geworden
5 aug 2015
Berichten
238
Beste lezer,

Bijgevoegd in Excel heb ik een matrix waaruit ik automatisch een output lijst wil genereren. Heeft iemand een idee over hoe ik dit het beste kan aanpakken? Gelieve een oplossing m.b.v. formules i.p.v. VBA.

Bedankt voor jullie hulp!
 

Bijlagen

  • Vraag.xlsx
    9,3 KB · Weergaven: 37
Hallo,

Misschien zoiets?
Het is niet met VBA en niet met formules maar met power query tot stand gekomen.
 

Bijlagen

  • Vraag(PV).xlsx
    18,3 KB · Weergaven: 35
Laatst bewerkt:
Hallo Peter,

Hartelijk voor de geboden oplossing.
Werkt helemaal geweldig. :thumb:
 
Voor insiders:
Code:
=LET(y;AANTAL.ALS(B3:E9;"x");z;(B3:E9="x");KIEZEN({1\2};INDEX(A3:A9;AGGREGAAT(15;6;RIJ(A1:A7)/z;REEKS(y)));INDEX(B2:E2;;NAAR.KOLOM(KOLOM(A:D)/z;2))))
 
Waarom wel met andere programmeertalen en niet met VBA ?

Code:
Sub M_snb()
   sn = Range("A2:E9")
   ReDim sp(UBound(sn) * UBound(sn, 2), 1)
   sp(0, 0) = "Datum"
   sp(0, 1) = "Tijd"
   n = 1
   
   For j = 2 To UBound(sn)
     For jj = 2 To UBound(sn, 2)
       If sn(j, jj) = "x" Then
          sp(n, 0) = sn(j, 1)
          sp(n, 1) = sn(1, jj)
          n = n + 1
       End If
     Next
   Next
   
   Cells(12, 6).Resize(UBound(sp), 2) = sp
End Sub
 
Voor office 365

Code:
=LET(x;AANTAL.ALS(B3:E9;"x");KIEZEN({1\2};KLEINSTE(ALS(B3:E9<>"";A3:A9);REEKS(x));INDEX(B2:E2;XML.FILTEREN("<x><y>"&TEKST.COMBINEREN("</y><y>";;ALS.FOUT(REEKS(;4)/(B3:E9="x");""))&"</y></x>";"//y"))))
 
Laatst bewerkt:
Die vorige was niet zo best he? :D
 
Inderdaad iets te snel
 
Da's wel handig die Filterxml.

Ik had het eerst zo....
Code:
=LET(y;AANTAL.ALS(B3:E9;"x");z;(B3:E9="x");KIEZEN({1\2};INDEX(A3:A9;AGGREGAAT(15;6;RIJ(A1:A7)/z;REEKS(y)));INDEX(B2:E2;TEKST.SPLITSEN(TEKST.COMBINEREN("\";;ALS.FOUT(REEKS(;4)/z;""));;"\"))))

....maar is ook voor insiders.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan