Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  24 25 26 27 28 29 30 31 32   další » ... 37

Dělat variantu s hledáním mezery a tečky se mi už nechtělo. Je to snadné a nudné, bylo to tu mnohokrát. Pro 700 tis. záznamů se vyplatí ten text do sloupců. Stačí nastavit oddělovače mezera a tečka. Pak typ dat (to za tečkou musí být text a dál vzoreček:

=B1+C1+HODNOTA("0,"&D1)/86400

a uvedený formát pro výsledek.

Ten konec s desetinami je spíše kvůli zaokrouhlení. Ve jmenovateli zlomku má být pochopitelně 86400 (sežralo to hvězdičky násobení).

Sice pát vzorečků přišlo, zkusím přidat:

Pokud je to datum/ čas, je to snadné:

=HODNOTA.NA.TEXT(A1;"rrrrmmddhhmmss")

Pokud je to text, tak je to o chlup delší:

=HODNOTA.NA.TEXT(DATUMHODN(ZLEVA(A1;10))+ČASHODN(ČÁST(A1;12;8))+HODNOTA("0,"&ČÁST(A1;21;10))/(246060);"rrrrmmddhhmmss")

Pokud se ptáš na funkce v E 2016, tak to dělají funkce CONCAT, případně (asi lépe) TEXTJOIN.

Příště raději připiš verzi excelu, ve které pracuješ.

Nevšiml jsem si doplňujících obrázků. Vše bylo napsáno.
Jediné, co funkce CONCATENATEv tomto případě udělá je, že převede čísla na text.

Pokud to trochu zjednoduším, tak můžeme považovat value za objekt a value2 za hodnotu.

Používám value2 pro čtení i pro zápis (podle dat a potřeb, některé vlastnosti se nepřenášejí), po zápisu raději zkontroluji.
Je to o hodně rychlejší a pro větší data se práce vyplatí. Pokud použijeme v testu value2, dostaneme o dost jiný čas.


Sub test()
Dim t As Double
t = Evaluate("=NOW()")
Dim i As Byte
Dim a
Dim b

b = Selection.Value2
For i = 0 To 254
a = Application.Transpose(b)
Next i
Debug.Print WorksheetFunction.Text(Evaluate("=NOW()") - t, "m:ss.000")
End Sub

Pokud je to číslo tak třeba
=SVYHLEDAT(9E307;G:G;1)

Pokud text tak

=SVYHLEDAT("žžžžžžžžžžžž";G:G;1)

Nebo lze také upravit makro a nechat ho zpracovat jednotlivé sešity.

Trochu netradičně:

=WORKDAY.INTL(A1-1;1;"0111111")

první po nebo středa:
=WORKDAY.INTL(A1-1;1;"0101111")

...

Lze snadno doplnit o slovo "pracovní"

(V A1 je první den měsíce)

@123456

Pokud žádám o radu, tak si dám práci a napíšu co opravdu chci. Opakovaně jste byl upozorněn, naposledy od xlnc, že dotaz/požadavek není srozumitelný. A podle reakce, se mi to jeví tak, že jste opravdu při nejmenším dost nechápavý.

Pokud má být výstupem jedna řádka, tak použijte filtr na zdrojovou tabulku a máte to bez vzorců a maker.
Ale to také hádám.

Jednoduchá varianta - pomocný sloupec a třeba

=MOD(ŘÁDEK();10)

pak filtrem buď skrýt zbytečné řádky, nebo data zkopírovat jinam.

Pokud lze použít xy graf lze postup zozšířit:
Obvykle jsou zajímavá místa, kde se něco děje.
tj. třeba do dalšího sloupce

=KDYŽ(ABS(A11-PRŮMĚR(POSUN(A10;-9;0;10;1)))>2*SMODCH.P(POSUN(A10;-9;0;10;1));0;10)

- vloží 0 pokud akt. bod se významněji liší od předchozích 10 hodnot

V tomto případě je ale krok nestejný mezi body a je tedy vhodné použití xy grafu.

(doporučuji filtrovat hodnotu 0, pak se dá snadněji měnit počet vybraných položek a není třeba na tyto drobnosti myslet)

Neuvedl jste verzi. U mne (2010) při manuální aktualizaci excel tvrdí, že pokud je připojen průřez, tak zdroj nezmění.

Pokud takto, tak je potřeba znovu kt průřezu připojit.

Druhá varianta - vytvořte tabulku nebo pojmenujte dynamickou oblast a uveďte je jako zdroj. Potom refresh stačí.

Count je long tj. max číslo je 2147483647

Už dávno se používá

ActiveSheet.Cells.CountLarge což je variant.

Pokud jsou ve sloupci A hodnoty unikátní, vyberte sloupce A a B a podmíněným formátem označte duplicty.

Co není ve sloupci A vybarveno chybí ve sloupci B

Bez zjednodušení to nepůjde.

Zkuste použít aspoň procedury:

např. v Layout se pořád opakuje
If DataPrace.Zakazka01.Enabled = True And DataPrace.TbLinka01.Value = "" Then DataPrace.TbLinka01.Value = "WH RH"
If DataPrace.Zakazka02.Enabled = True And DataPrace.TbLinka02.Value = "" Then DataPrace.TbLinka02.Value = "WH RH"
...


Udělejte z toho proceduru, kde parametrem je potřebný text, celý kód bude čitelnější.

V DataPrace se pořád opakují stejné operace, zkuste procedury


sub Udelej(TbLinka as object, TbHodPrace as object, ...)
TbLinka.Value =c
TbLinka.Height = 50
...

end sub

pak v kódu

Udelej TbLinka02, TbHodPrace02,



Jednotlivé prvky můžete vložit do pole

Na začátku


Dim Zakazka(1 to 18) as object

Private Sub UserForm_Initialize()
set Zakazka(1)=Zakazka01
set Zakazka(2)=Zakazka02
set Zakazka(3)=Zakazka03
...

End Sub

for i =10 to ubound(Zakazka)
Zakazka(i).visible= true
next

Z legendy se to odstraní klávesou delete, tlačítka nahoře lze skrýt.

Zbývá zneviditelnit samotná data.

Možnosti:
- Zobrazit na vedlejší ose, vhodně nastavit rozsah a formát osy
- Změnit formát nepohodlné řady tak, aby zmizela (rozsah osy bude ale nutné nastavit ručně).
- Použít pomocnou proměnnou, která bude "malá". Např. "soucet nedostupnosti" / 1000
a třídit podle pomocné proměnné.

Tak tady je

A) ve sloupci A směs čísel a textů. Doporučuji sjednotit.
B) Hledaná hodnota je text. Ve funkci převést na typ, který bude ve sloupci A.
C) Funkce SVYHLEDAT bez 4. parametru předpokládá setříděný sloupec A. V tomto případě není, jen to tak vypadá. (Číslo je při porovnání menší než text.)

xlnc navrhuje vše opravit vzorcem, já bych spíše doporučil udělat pořádek v datech.


Strana:  1 ... « předchozí  24 25 26 27 28 29 30 31 32   další » ... 37

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse