príklad:
Sub vyber()
Dim OsobniCislo As String, Jmeno As String
ZADAJ:
OsobniCislo = InputBox("Zadej osobní číslo:")
If StrPtr(OsobniCislo) = 0 Then Exit Sub
If Not IsNumeric(OsobniCislo) Then GoTo ZADAJ
On Error Resume Next
Jmeno = Application.WorksheetFunction.VLookup(CDbl(OsobniCislo), Range("Skupina"), 2, 0)
If Err.Number <> 0 Then
Err.Clear
GoTo ZADAJ
Else
With Worksheets("List1")
.Range("OsobniCislo").Value = CDbl(OsobniCislo)
.Range("Jmeno").Value = Jmeno
End With
End If
On Error GoTo 0
End Sub
Zaujímavý nápad, ako ľahko určovať, ktoré bunky zahrnúť, len nevieme podrobnosti.
Ako prichádza k aktualizácii (či by bolo pracné ich takto "transponovať")?
Menia sa tie bunky za iné?
Aké sú podmienky, ktoré započítať a ktoré nie (na základe nejakých podmienok sa predsa zazelenajú)?
...
A ako prídete na to, že práve iba z týchto buniek sa bude vždy robiť priemer???
Vstupné dáta naformátujte ako Tabuľku, pridajte jeden stĺpec na určenie ročného obdobia, napr.:
=CHOOSE(INT((MONTH([@Dátum])-INT(MONTH([@Dátum])/12)*12)/3)+1;"Zima";"Jar";"Leto";"Jeseň")
=ZVOLIT(CELÁ.ČÁST((MĚSÍC([@Dátum])-CELÁ.ČÁST(MĚSÍC([@Dátum])/12)*12)/3)+1;"Zima";"Jar";"Leto";"Jeseň")
A použite SmartFiltre na roky a ročné obdobia.
Na všemožné analýzy, kontingenčky, PQ dotazy je neskutočný kúzelník MePExG. Ale tá príloha ...
Zložitejšie riešenie:
Definovaný názov OBLAST
={"'Hárok1'!$A$1";"'Hárok1'!$A$3";"'Hárok1'!$C$5:$C$6";"'Hárok1'!$G$4:$H$9"}
maticový vzorec
=SUM(SUMIF(INDIRECT(OBLAST);"<3"))/SUM(COUNTIF(INDIRECT(OBLAST);"<3"))
=SUMA(SUMIF(NEPŘÍMÝ.ODKAZ(OBLAST);"<3"))/SUMA(COUNTIF(NEPŘÍMÝ.ODKAZ(OBLAST);"<3"))
prípadne nematicový
=SUMPRODUCT(SUMIF(INDIRECT(OBLAST);"<3"))/SUMPRODUCT(COUNTIF(INDIRECT(OBLAST);"<3"))
=SOUČIN.SKALÁRNÍ(SUMIF(NEPŘÍMÝ.ODKAZ(OBLAST);"<3"))/SOUČIN.SKALÁRNÍ(COUNTIF(NEPŘÍMÝ.ODKAZ(OBLAST);"<3"))
prípadne nematicový a bez použitia def. názvu s jednoduchším pridaním oblastí
=SUMPRODUCT(SUMIF(INDIRECT("'Hárok1'!"&{"A1";"A3";"C5:C6";"G4:H9"});"<3"))/SUMPRODUCT(COUNTIF(INDIRECT("'Hárok1'!"&{"A1";"A3";"C5:C6";"G4:H9"});"<3"))
=SOUČIN.SKALÁRNÍ(SUMIF(NEPŘÍMÝ.ODKAZ("'Hárok1'!"&{"A1";"A3";"C5:C6";"G4:H9"});"<3"))/SOUČIN.SKALÁRNÍ(COUNTIF(NEPŘÍMÝ.ODKAZ("'Hárok1'!"&{"A1";"A3";"C5:C6";"G4:H9"});"<3"))
OT: @eLCHa: Na to nemám žiaden dosah. Ja len hasím, čo mi zavolajú :(
Ak nedáte prílohu, urobte aspoň screenshot danej oblasti. V piatok som podobnú somarinu riešil so mzdárkou. SAP jej dáva číslo, čo nieje číslo ani po vynásobení 1*, lebo aj keď má desatinný oddeľovač "," stále je tam oddeľovač tisícov ".".
Ja narážam na to, odkiaľ mi vieme, či Novák Petr má mail na nejakom servery, a odkiaľ vieme, či je to novakpetr@xy.cz / petrnovak@xy.cz / novak.petr@xy.cz / ...
Mi to musíme nejako vedieť, keď chcem aby bol hypertextový odkaz funkčný.
A ak to vieme, kto má kde mail v akej podobe, tak postrádam zmysel v tomto spájaní, lebo keď to vieme, niekde takú infošku už asi máme v DB. Či ???
Najskôr si pozrite, či je toto to, čo potrebujete. Potom Vám na to spravím makro, ak dodáte prílohu, aby bolo jasné kde sú data, od ktorého po ktorý riadok, hromadne na X riadkov ...
A vysvetlite, čo myslíte tým odkazom. Hypertextový odkaz? Na mail, ktorý neexistuje? Alebo všetky tie mená majú vytvorený mail? Treba sa zbavovať aj medzier (to som tam dal). Má to byť UDF funkciou (tak ako teraz funguje pri zmene dát), alebo makrom zapísané jednorázovo? Málo info.
PS: odstránenie diakritiky vycucané z riešenia od eLCHa.
Ak chcete z toho mať text:
=TRIM(TEXT(1*SUBSTITUTE(A1;" ";"");"##\ ##\ ##"))
=PROČISTIT(HODNOTA.NA.TEXT(1*DOSADIT(A1;" ";"");"##\ ##\ ##"))
formát Všeobecný
Ak chcete z toho mať číslo:
=1*SUBSTITUTE(A1;" ";"")
=1*DOSADIT(A1;" ";"")
a formát Vlastný
##\ ##\ ##
Nepíšete, čo sa má s tým diať. Uložiť do listu? Na disk? Do mailu? Ak si dáte do Googlu výraz "vba form screenshot" nájdete väčšinou API, no tento kratučký stačí na screenshot do listu:
Private Sub CommandButton1_Click()
Application.SendKeys "(%{1068})"
DoEvents
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
End Sub
Pochybujem, nereálne.
@Jiří497 : Nedávajte tam celý rozsah, ale iba vyplnenú časť, počítanú v Definovanom názve SEZNAM, napr.:
=OFFSET(List1!$AU$208;;;ROWS(List1!$AU$208:$AU$407)-COUNTBLANK(List1!$AU$208:$AU$407))
=POSUN(List1!$AU$208;;;ŘÁDKY(List1!$AU$208:$AU$407)-COUNTBLANK(List1!$AU$208:$AU$407))
A tento def. názov SEZNAM zadajte ako vstupný rozsah prvku.
EDIT: Inak aby nebolo potrebné mať niekde dostatočný počet riadkov pre maticu, tak by som v tej istej dátovej tabuľke vytvoril na to skrytý stĺpec, a o vhodnú veľkosť je postarané.
Predpokladám, že ste priložil súbor s prílohou XLSM. Ale taký súbor fórum nezoberie. Musíte ho zabaliť do ZIP, ktorý je do cca 256 KB.
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.