A obyčajný VLOOKUP/SVYHLEDAT ste neskúšal?
=IFERROR(VLOOKUP(B2;J2:K5;2;FALSE);"")
=IFERROR(SVYHLEDAT(B2;J2:K5;2;NEPRAVDA);"")
PS: mepexg sa iba preklepol, v D2 nieje potrebný maticový vzorec, stačí obyč.
Tak skúste jednorázovo použiť nejaké makro, napr.:
Sub ZmenaHyperlink()
Dim Bunka As Range, Hodnota
With Worksheets("Hárok1")
For Each Bunka In .Range("A1:A6").Cells
Hodnota = Bunka.Value
Select Case True
Case LenB(Hodnota) = 0
Case Left$(Hodnota, 4) <> "http": .Hyperlinks.Add Anchor:=Bunka, Address:="http://" & Hodnota
Case Else: .Hyperlinks.Add Anchor:=Bunka, Address:=Hodnota
End Select
Next Bunka
End With
End Sub
Veď ale Vy máte v R vzorec, teda musíte testovať zmenu v manuálne menených bunkách, ktoré ten vzorec používa. Vzorec používa Q a D. D je manuálne menený, no Q je vzorec, ktorý používa E, a to je manuálne menené. Teda sledované bunky vo Worksheet_Change musia byť všetky manuálne, a teda D a E. Stĺpce D a E reprezentujú vo Vašej Tabuľke "Tabulka2" stĺpce 3 4 (Datum, šarže).
-Teda test zmeny v týchto dvoch,
-Prenesenie na stĺpec R - teda v Tabulka2 číslo 17 (Měsíc),
-Overenie trvania >14 a prenesenie na stĺpec P - teda v Tabulka2 je to posun o -2 stĺpce,
-Zápis "ne"
PS: ---Prípadné ošetrenie hromadného zápisu do viac buniek
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ChangeAreaDE As Range, ChangeAreaR As Range, SubArea As Range, Cell As Range, FinalAreaP As Range, Hodnota
Set ChangeAreaDE = Intersect(ListObjects("Tabulka2").DataBodyRange.Columns(3).Resize(, 2), Target)
If Not ChangeAreaDE Is Nothing Then
Set ChangeAreaR = Intersect(ListObjects("Tabulka2").DataBodyRange.Columns(17), ChangeAreaDE.EntireRow)
If Not ChangeAreaR Is Nothing Then
For Each SubArea In ChangeAreaR.Areas
For Each Cell In SubArea.Cells
Hodnota = Cell.Value
If Hodnota <> "" And Hodnota > 14 Then
If FinalAreaP Is Nothing Then Set FinalAreaP = Cell.Offset(0, -2) Else Set FinalAreaP = Union(FinalAreaP, Cell.Offset(0, -2))
End If
Next Cell
Next SubArea
If Not FinalAreaP Is Nothing Then
Application.EnableEvents = False
FinalAreaP.Value = "ne"
Application.EnableEvents = True
End If
End If
End If
End Sub
Nečítal som celé vlákno, teda možno treba ešte niečo doplniť/zmeniť. Otestujte.
A čo keby sa dalo iba:
=IF(ISBLANK(A1);A2;A1)
+ podmienený formát s podmienkou zisťovania FO/PO:
=ISBLANK($A$1)
s formátom Dátum ?
Tak to je parádne, tá "matrica" dní v týždni...
Príklad, čo ma prvé napadlo ...
EDIT: Len dovysvetlím ...(2*7)...
2* znamená 2. v poradí a 7 znamená deň týždňa. Keď budete hľadať 3. sobotu, tak to bude (3*6)...
Pr.
??? Asi Vás nechápem. Tu som pridal malé vysvetlenie, ako som Vás pochopil. Každé mesto má variabilný počet a rôzne položky. Každé mesto to má v riadku (nie v stĺpci). Začína sa od B stĺpca v danom riadku, a pokračuje doprava.
Pripadne to vysvetlite inak.
Ja by som to videl možno takto.
Def. názov Město:
=OFFSET(Data!$A$2;;;COUNTA(Data!$A:$A)-1)
=POSUN(Data!$A$2;;;POČET2(Data!$A:$A)-1)
Def. názov Oddíl:
=OFFSET(Data!$B$2;MATCH(Základ!$A$2;Město;0)-1;;;COUNTA(OFFSET(Data!$2:$2;MATCH(Základ!$A$2;Město;0)-1;))-1)
=POSUN(Data!$B$2;POZVYHLEDAT(Základ!$A$2;Město;0)-1;;;POČET2(POSUN(Data!$2:$2;POZVYHLEDAT(Základ!$A$2;Město;0)-1;))-1)
Podm. formátovanie B2:
=ISERROR(MATCH($B$2;Oddíl;0))
=JE.CHYBHODN(POZVYHLEDAT($B$2;Oddíl;0))
Nič vedľa dát v liste Data nemajte, len dopĺňajte zoznam, ten sa bude dynamicky prepočítavať v def. oblastiach.
=SUMIFS(K2:K6;A2:A6;A9;G2:G6;"Součet")
Majte všetko v správnom formáte, čo pre Váš prípad znamená Text. Nestačí dať iba Formát bunky na Text, ale ešte aj urobiť z toho skutočne text tak, že sa dočasne vytvorí stĺpec =""&A2 a tieto hodnoty sa nakopírujú ako "Hodnoty" namiesto pôvodných. Dočasný stĺpec zmazať. Vo vzorci iba zmeniť adresu kontrolovanej bunky z C2 na A2. Basta-fidli.
Ujasnime si pojmy a dojmy.
Vy zisťujete, či číslo "HS" začína ktorýmkoľvek číslom "Vyloucene"? Ako toto spĺňa "Vyloucene" číslo 9202101000 ???
Žiadne číslo "HS" nezačína ničím z 9202101000. Ani ak by sme posledné 0 vynechali a bolo by to 9202101.
Premyslite si poriadne čo požadujete, aké dávate príklady, a tieto príklady vysvetlite - na prílohe, pričom dbajte aby boli požadované príkladné výsledky správne. Nestačí iba povedať "nefunguje", keď dostanete návrh na riešenie.
Nuly na začiatku čísel "Vyloucene" nemôžete odstrániť, viď pr4.
Polepšite sa
Nedal som nič nevyskúšané. Všetko u mňa na Vašich dátach funguje (Excel 2019). Som teraz len na mobile, keď prídem, pošlem Vám to vo Vašom súbore.
že by takto (maticový vzorec Ctrl+Shift+Enter):
=IF(SUM(COUNTIF(C2;Vyloucene!$A$1:$A$61&"*"))>0;"ANO";"NE")
=KDYŽ(SUMA(COUNTIF(C2;Vyloucene!$A$1:$A$61&"*"))>0;"ANO";"NE")
alebo normálny nematicový naiesto SUM/SUMA dať SUMPRODUCT/SOUČIN.SKALÁRNÍ
Aha, takto. A ja som to páskoval pred alebo za :) Škoda, že to nejde ešte na ten čudlík s PrintOut. Nuž ale čo, aj tak je to prd platné, lebo tých možností výplní a farieb, ktoré by bolo treba odstraňovať sú mraky. Napadlo ma, či by nebolo jednoduchšie vyrobiť tlačový list, do ktorého by sa natiahli iba nefarebné dáta + tie ikony, alebo prípadné vytváranie dočasnej kópie listu a odstránenie farieb a PF (okrem ikon) a následné jeho zmazanie...
Ale je čas spať.
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.