PQ?
Ak budem brať ako identifikátor celý riadok, tak by som to asi rýchlo urobil s 2 pomocnými stĺpcami.
Aha súbor má 558 KB, nevlezie sem, tak vzorce:
List "actual":
stĺpec "Kontrola"
=TEXTJOIN("•";FALSE;AxTable1[@[Typ řádku]:[ID řádku úpravy]])
=TEXTJOIN("•";NEPRAVDA;AxTable1[@[Typ řádku]:[ID řádku úpravy]])
stĺpec "Check"
=IF(ISNA(MATCH([@Kontrola];AxTable15[Kontrola];0));"Navíc";"")
=KDYŽ(JE.NEDEF(POZVYHLEDAT([@Kontrola];AxTable15[Kontrola];0));"Navíc";"")
List "old test":
stĺpec "Kontrola"
=TEXTJOIN("•";FALSE;AxTable15[@[Typ řádku]:[ID řádku úpravy]])
=TEXTJOIN("•";NEPRAVDA;AxTable15[@[Typ řádku]:[ID řádku úpravy]])
stĺpec "Check"
=IF(ISNA(MATCH([@Kontrola];AxTable1[Kontrola];0));"Chybí";"")
=KDYŽ(JE.NEDEF(POZVYHLEDAT([@Kontrola];AxTable1[Kontrola];0));"Chybí";"")
A potom si len dáte filtre na stĺpce Check.
To je jednoduché, len musíte pred prepisom dočasne vypnúť udalosti, lebo by sa dokola volal znovu opačný prepis.
No a aký máte Office? Lebo tam je tých funkcií viac použitých.
Môžete to urobiť obdobne pomocou Kontingenčných tabuliek s WC vo Filtre, materiálom ako Riadky, a Hodnota bude UKONČENÍ s voľbou Maxima.
Napr. takto?
=IFERROR(LET(p;$B$2:$B$27=Y$4;g;FILTER($G$2:$G$27;p);e;FILTER($E$2:$E$27;p);u;UNIQUE(g);HSTACK(u;BYROW(u;LAMBDA(x;MAX(FILTER(e;g=x))))));"N/A")
=IFERROR(LET(p;$B$2:$B$27=Y$4;g;FILTER($G$2:$G$27;p);e;FILTER($E$2:$E$27;p);u;UNIQUE(g);SROVNAT.VODOROVNĚ(u;BYROW(u;LAMBDA(x;MAX(FILTER(e;g=x))))));"N/A")
V lubovom vzorci predsa stačí zmeniť čísla v OFFSET-och (POSUN), lebo je to tam napevno:
OFFSET(x; 4; -1) --> OFFSET(x; ROW(A4); -1)
OFFSET(x; 2; ) --> OFFSET(x; ROW(A2); )
Ale ak nechcete vždy robiť štvoricu vzorcov (4 riadky materiálu), dá sa urobiť taký naťahovací, ktorý bude stačiť ťahať myšou, a on bude reagovať na násobky 4. Potrebujete mať teda rovnaký výsledok vo všetkých 4 riadkoch materiálu? Ak nie, v ktorom zo 4?
Snáď som to pochopil. Ak nemáte funkciu LET, neviem preklad do CZ, dá sa to aj bez nej.
=IFNA(LET(IDX;MATCH(TRUE;D5:W5<0;0);SUM(OFFSET(C1;;;;IDX))+(INDEX(C5:V5;IDX)/(INDEX(D3:W3;IDX)/INDEX(D1:W1;IDX))));"N/A")
=IFNA(LET(IDX;POZVYHLEDAT(PRAVDA;D5:W5<0;0);SUMA(POSUN(C1;;;;IDX))+(INDEX(C5:V5;IDX)/(INDEX(D3:W3;IDX)/INDEX(D1:W1;IDX))));"N/A")
Vzorec funguje tak, ako som pochopil Váš text. Priložte prílohu s pár príkladmi a s očakávanými výsledkami.
=IF(AND(COUNT(B2:M2)<4;COUNT(N2:U2)<5);1000;AVERAGE(B2:U2))
=KDYŽ(A(POČET(B2:M2)<4;POČET(N2:U2)<5);1000;PRŮMĚR(B2:U2))
V tom vidím ale docela zásadný logický problém.
1. Aktualizujem PQ, dôjde k výpočtu
2. Čiastka bude nahradená výpočtom Čiastka / Rate
3. Po nejakom čase aktualizujem PQ znovu (napr. doplnenie nových riadkov, alebo iné)
4. A skáčem na bod 1., ale hlavne potom na bod 2. !!! Čiže bude už vypočítaná čiastka znovu vypočítavaná (už podelené bude znovu delené).
Ak by ste mal tie tlačítka formulárové, tak by to šlo v pohode cez Application.Caller.
Riadok = ActiveSheet.Buttons(Application.Caller).TopLeftCell.Row
alebo rovno .TopLeftCell.Offset().
Ale keď máte ActiveX tlačítka, tak budete musieť prerobiť procedúru na odoslanie na parametrickú.
Sub OdosliMail(Riadok As Long)
Dim xOutMail As Object
...
xMailBody = "Zakázka číslo " & Cells(Riadok, "N") & " - " & Cells(Riadok, "O") & " jepřebalena" ...
...
End Sub
a potom volacie makro pre každé tlačítko s pevne stanovených dopredu zadaným riadkom
Private Sub CommandButton3_Click()
OdosliMail 3
End Sub
Private Sub CommandButton4_Click()
OdosliMail 4
End Sub
...
Čo je identifikátorom človeka v oboch listoch? PIN ?
Na čo slúži na List1 stĺpec P?
EDIT:
Príklad v prílohe.
Za predpokladu jedinečnosti kombinácie A+B takto
=SUMIFS(INDIRECT("'"&C$1&"'!C2:C100");INDIRECT("'"&C$1&"'!A2:A100");$A2;INDIRECT("'"&C$1&"'!B2:B100");$B2)
=SUMIFS(NEPŘÍMÝ.ODKAZ("'"&C$1&"'!C2:C100");NEPŘÍMÝ.ODKAZ("'"&C$1&"'!A2:A100");$A2;NEPŘÍMÝ.ODKAZ("'"&C$1&"'!B2:B100");$B2)
A ten vzor je zle, viď vyznačené pomocou Podm. Form.
Vzorec funguje. Čiarka je v EN. V našich končinách je oddeľovač parametrov bodkočiarka.
Za tou zostavou je slovne napísaný kanál. Máte tam "aktuálny kanál" / "Current Channel" alebo iný text? Pýtam sa preto, lebo cez CMD by sa mala dať vrátiť predchádzajúca verzia Office, spolu s dočasným zákazom aktualizácie Office. Tu je história, odkiaľ sa podľa kanála zoberie číslo.
Ak nepomôže ani to, môžem sa Vám v rámci časových možností pozrieť na makro, či sa nedá nejako optimalizovať.
EDIT:
Niekto tam ešte písal, že mu pomohlo zošit premiestniť do dôveryhodného umiestnenia
...What worked for me? I moved the workbook to a trusted location (as defined by Trust Centre Settings), Then it worked as it used to....
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.