transpose by array formula

Ce este nou in Microsoft Excel 2016?
Informatii despre cum se utilizeaza Microsoft Excel 2016
Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc

transpose by array formula

Mesajde carkalete23 » Mar Iul 10, 2018 4:55 pm

Buna seara,

am nevoie de ajutorul vostru pentru usurarea sau gasirea unei solutii alternative pentru problema urmatoare:
pe coloana A am mai multe valori duplicate, De ex A2:A4 are aceeasi valoare B2= blank, B3=1, b3=2...
Acesti stepi pot ajunge pana la un maxim de 5(deci 6 valori egale aferente coloanei A incluzand si primul blank.)
Ca si task eu a trbui sa fac un fel de transpose in care am facut urmatoarele:
In coloana J am folosit
Cod: Selectaţi tot
{=IFERROR(INDEX($A$2:$A$65585; MATCH(0;COUNTIF($J$1:J1;$A$2:$A$65585);0));"")}

pentru a identifica valorile unice din coloana A
iar de la coloana K la Y, pe un max de 4 step am folosit
Cod: Selectaţi tot
{=IFERROR(INDEX($B$2:$B$6485;SMALL(IF(J2=$A$2:$A$6485;ROW($A$2:$A$6485)-ROW($A$2)+1);[b]1[/b]));" ")}

pentru a prelua valoarea din coloana B/C si D... incrementand ultimul 1(cea mai mica valoare din data setul functiei SMALL)

Intrucat se prevad cantitati exorbitante de date pentru primele 4 coloane si e posibil sa ma trezesc cu un excel crash :)... s-ar putea gasi o varianta de macro?(sau orice altceva in asa fel sa nu ingreuneze procesarea tuturor informatilor)


Atasez si fisierul cu exemplul facut.
Va multumesc frumos,
Claudiu P
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
carkalete23
 
Mesaje: 143
Membru din: Sâm Apr 27, 2013 1:01 pm

Re: transpose by array formula

Mesajde H2SO4 » Mar Iul 10, 2018 5:35 pm

Salut,

Titlul spune tot...transpose by array formula

Incerc sa inteleg dar...(oare ce ar fi zis dl. Indigo de limbajul folosit)
Acesti stepi pot ajunge pana la un maxim de 5(deci 6 valori egale aferente coloanei A incluzand si primul blank.)

Ce sunt acesti stepi???? e vorba de pasi??
Ca si task eu a trbui sa fac un fel de transpose in care am facut urmatoarele:

Un fel de transpose?
Intrucat se prevad cantitati exorbitante

cantitati exorbitante ????
“Tell me and I forget, teach me and I may remember, involve me and I learn.”
H2SO4
 
Mesaje: 76
Membru din: Mar Apr 19, 2016 12:50 pm

Re: transpose by array formula

Mesajde TudyBTH » Mie Iul 11, 2018 12:51 am

Buna,

Aveti mai jos un cod VBA care face centralizarea descrisa de dv.
Cod: Selectaţi tot
Sub Centralizing()

    Dim rInput As Range, rResult As Range
    Dim i As Long, j As Long
    Dim dict As Object
    Dim prod As Variant, action As Variant, inv As Variant
    Dim step As Integer
   
   
    '=======================================================
    'aici modificati corespunzator cu adresele din fisier
    Set rInput = ThisWorkbook.Sheets("Sheet4").Range("A1")
    Set rResult = ThisWorkbook.Sheets("Sheet4").Range("J1")
    '=======================================================
   
    Application.ScreenUpdating = False
   
    'sterge datele din zona result si scrie capul de tabel
    If Len(rResult.Value) > 0 Then rResult.CurrentRegion.ClearContents
    rResult.Value = rInput.Value
    For i = 1 To 6
        rInput.Offset(, 1).Resize(1, 3).Copy rResult.Offset(, (i - 1) * 3 + 1)
    Next i
   
    'extrage datele
    Set dict = CreateObject("Scripting.Dictionary")
    i = 0
    Do Until Len(rInput.Offset(i + 1, 0).Value) = 0 Or rInput.Offset(i, 0).Row = rInput.Parent.Rows.Count
        i = i + 1
        prod = rInput.Offset(i, 0).Value
        step = rInput.Offset(i, 1).Value
        action = rInput.Offset(i, 2).Value
        inv = rInput.Offset(i, 3).Value
        If Not dict.exists(prod) Then
            j = j + 1
            dict.Add prod, 0
            rResult.Offset(j, 0).Value = prod
        End If
        rResult.Offset(j, step * 3 + 1).Value = step
        rResult.Offset(j, step * 3 + 2).Value = action
        rResult.Offset(j, step * 3 + 3).Value = inv
    Loop
   
    Application.ScreenUpdating = True

End Sub
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Am invatat sa inotam in apa, ca pestii
Am invatat sa zburam in aer, ca pasarile
A ramas doar sa invatam sa traim pe Pamant, ca Oamenii.
TudyBTH
Moderator
Moderator
 
Mesaje: 877
Membru din: Joi Feb 11, 2016 2:12 pm
Localitate: Cluj Napoca

Re: transpose by array formula

Mesajde carkalete23 » Mie Iul 11, 2018 6:28 am

H2SO4 scrie:Salut,

Titlul spune tot...transpose by array formula

Incerc sa inteleg dar...(oare ce ar fi zis dl. Indigo de limbajul folosit)
Acesti stepi pot ajunge pana la un maxim de 5(deci 6 valori egale aferente coloanei A incluzand si primul blank.)

Ce sunt acesti stepi???? e vorba de pasi??
Ca si task eu a trbui sa fac un fel de transpose in care am facut urmatoarele:

Un fel de transpose?
Intrucat se prevad cantitati exorbitante

cantitati exorbitante ????

Deoarece mi-am luat-o de foarte multe ori in freza pentru ca nu am detaliat foarte clar problema, am zis sa ma fac cat pot de inteles.
Da, acei stepi sunt pasi...Daca aveai curiozitatea sa deschizi fisierul atasat vedeai ca exista o coloana "step"...
..... In fine, imi cer scuze daca te-am deranjat vizual dar ma bucur ca ai inteles problema. :o

@TudyBTH - imi cer scuze pentru rautacismele colegului @H2SO4. Este perfect, l-am testat cu 10k record si functioneaza excelent.
Iti multumesc frumos
Claudiu P
carkalete23
 
Mesaje: 143
Membru din: Sâm Apr 27, 2013 1:01 pm

Re: transpose by array formula

Mesajde H2SO4 » Mie Iul 11, 2018 4:41 pm

carcalete23,

nu sunt "rautacisme" dar daca poti, de ce sa nu scrii in limba romana? sau poate nu poti si atunci ar fi de inteles.
De ce sa folosim niste termeni in alta limba cand avem cuvinte in limba noastra, sau vrei sa pari mai interesant?. Pentru mine nu esti, ba chiar opus....
mai bine ai invata sa te exprimi....
“Tell me and I forget, teach me and I may remember, involve me and I learn.”
H2SO4
 
Mesaje: 76
Membru din: Mar Apr 19, 2016 12:50 pm

Re: transpose by array formula

Mesajde carkalete23 » Vin Iul 13, 2018 4:05 pm

H2SO4,

nu are rost sa necertam... vad ca esti destul de pornit. iti sugerez sa iti modifici aceasta semnatura:
"“Tell me and I forget, teach me and I may remember, involve me and I learn.”" daca tot esti roman...
Si @TudyBTH este tot roman si nu cred ca a fost deranjat de "romgleza" mea... si culmea la el nu apare "Tell me..., teach me..." and so on....

Eu zic sa ramanem prieteni, unde este cazul sa ne ajutam... sa fim oameni/membri pe acest forum.

Iti multumesc,
Sa ai o zi buna!
Claudiu P
carkalete23
 
Mesaje: 143
Membru din: Sâm Apr 27, 2013 1:01 pm

Re: transpose by array formula

Mesajde H2SO4 » Vin Iul 13, 2018 9:54 pm

@carkalete,

nu are rost sa necertam... vad ca esti destul de pornit.

Eu am vrut sa spun (pacat ca nu intelegi lucrurile simple) ca mixarea unor cuvinte din mai multe limbi nu e normala si denota.... poate ai sa intelegi ...o sa-ti ia vreo 40 ani...
iti sugerez sa iti modifici aceasta semnatura:...

si care ar fi motivul??? ca nu intelegi tu ce inseamna?, lasa ca inteleg altii...

Daca te uitai mai bine, acea "semnatura" este incadrata de ghilimele (cauta in dictionar sa vezi ce inseamna, ghilimele) , nu stiu daca intelegi asa ceva, dar este un citat (cauta in dictionar sa vezi ce inseamna citat) si nu este normal sa il traduci decat pentru cei ca tine care nu inteleg dar dau din gura...

Nu vreau sa continui, ca iesim din sfera acestui forum...
“Tell me and I forget, teach me and I may remember, involve me and I learn.”
H2SO4
 
Mesaje: 76
Membru din: Mar Apr 19, 2016 12:50 pm


Înapoi la Intrebari despre Excel 2016

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 1 vizitator

cron