< návrat zpět

MS Excel


Téma: zjisteni statusu podniku 2 rss

Zaslal/a 18.10.2017 12:49

Ahoj,

potreboval bych pomoci se zjistenim statusu facility. Mam seznam ID + datum + status (1/0).

Cilem je zjistit, zda je facilita v soucasne dobe aktivni nebo ne.

Pokud je aktivni vyplnit sloupec start cooperation datem, kdy se zacalo spolupracovat,

Pokud aktivni neni, zjistit 1. datum zahajeni spoluprace + posledni datum ukonceni. Zamerne rikam posledni a prvni, protoze se u nekterych facilit objevuje zmena stavu nekolikrat. (cca 60)

prikladam soubor, ktery by mel byt snad jasnejsi.

Diky za help
Excelama

Příloha: xlsx38049_priklad_aktivnineaktivni.xlsx (70kB, staženo 31x)
Zaslat odpověď >

#038074
elninoslov
No jedno riešenie pomocou maticových vzorcov je napr. takéto, ale je veľmi výpočtovo náročné. Treba vymyslieť niečo iné, možno nejaké pomocné stĺpce, makro, ...
Len upresním, či som to pochopil. Ak je v posledný dátum daného ID jeho stav 0, teda je neaktívny, znamená to, že vypíšeme tento posledný dátum celkovo pre dané ID ako END, a aj prvý dátum celkovo pre dané ID ako ŠTART.
Ak je ale v posledný dátum daného ID jeho stav 1, teda je aktívny, znamená to, že vypíšeme tento dátum ako ŠTART, a END dátum je nič.
Příloha: xlsx38074_38049_priklad_aktivnineaktivni.xlsx (109kB, staženo 23x)
citovat
#038106
MePExG
Páči sa mi riešenie pomocou maticových vzorcov (všetka úcta), ale potrebuje definíciu zoznamu (jednoznačných) ID.
Prikladám riešenie pomocou PowerQuery (dostupné ako doplnok od verzie 2010 a vo verzii 2016 je už obsiahnuté). Stačí zmeniť údaje v tabuľke na liste data a v tabuľke na liste riešenie dať (v tabuľke Data) aktualizovať údaje.
Příloha: xlsx38106_aktivnineaktivni.xlsx (113kB, staženo 30x)
citovat
#038142
avatar
Ahojte,

sry za neskoru odpoved ale tiez som toto riesil :)

a Dostal som sa do dvoch zadrhelov:
1. ako spravit Data Connection na isty subor excelu?
2. ked uz sa podari spravit providera ako spojit tieto dve query co som vytvoril?

mozno ze sa to da aj inak napisat ale zaujimal by ma prave toto SQL riesenie

prikladam svoje nedokoncene makro (nechcel by som to riesit s makrom/Power query ale data connection) + subor:

Sub sbADOExample()
Dim sSQLQry As String
Dim ReturnArray
Dim Conn As New ADODB.Connection
Dim mrs As New ADODB.Recordset
Dim DBPath As String, sconnect As String

DBPath = ThisWorkbook.FullName
sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';"
Conn.Open sconnect

sSQLSting = "SELECT " & _
" [FacilityID]," & _
"MIN([DateFrom]), " & _
"MAX([DateFrom])" & _
"FROM [data$] AS A1 GROUP BY [FacilityID]"

'sSQLSting = "SELECT [a1].[FacilityID], [a1].[DateFrom], [a1].[Status]" & _
' "FROM [data$] AS [a1]" & _
' "INNER JOIN (SELECT [FacilityID], MAX(DateFrom) AS [DateFrom2] FROM [data$] GROUP BY [FacilityID]) AS [a2] ON [a1].[FacilityID] = [a2].[FacilityID] AND [a1].[DateFrom] = [a2].[DateFrom2] "

mrs.Open sSQLSting, Conn
ActiveSheet.Range("F2").CopyFromRecordset mrs
mrs.Close
Conn.Close
End Sub
Příloha: zip38142_38049_priklad_aktivnineaktivni-1.zip (69kB, staženo 22x)
citovat
#038144
avatar
Pokud je splněno několik podmínek:
facility jsou setříděné, první datum je zahájení spolupráce, je dodržena poslopnost spolupráce začíná - končí

Start:
=INDEX(Tabulka3[DateFrom];IFERROR(POZVYHLEDAT([@FacilityID]-1;Tabulka3[FacilityID])+1;1))

Status:
=INDEX(Tabulka3[Status];IFERROR(POZVYHLEDAT([@FacilityID];Tabulka3[FacilityID]);1))

Konec:
=KDYŽ([@[current status]]=0;INDEX(Tabulka3[DateFrom];IFERROR(POZVYHLEDAT([@FacilityID];Tabulka3[FacilityID]);1));"")

Ve 2016 se to dá řešit pomocí -ifs funkcí

Začátek
=MINIFS(Tabulka3[DateFrom];Tabulka3[FacilityID];[@FacilityID];Tabulka3[Status];1)

Poslední datum:
=MAXIFS(Tabulka3[DateFrom];Tabulka3[FacilityID];[@FacilityID])

Status:
=SUMIFS(Tabulka3[Status];Tabulka3[FacilityID];[@FacilityID];Tabulka3[DateFrom];<poslední datum>)

(Samozřejmě, pokud je ve stejný zahájení i ukončení spolupráce a pořadí je zpřeházené, tak to můžeme jen hádat)citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje