Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  6 7 8 9 10 11 12 13 14   další » ... 37

Dokud jsem to používal, tak ano. Teď už to nepotřebuju, pbi to má vestavěné.

Hláška "váš dotaz byl vytvořen v jiné verzi" je celkem běžná, pokud se otevírají starší sešity. Obvykle to není problém.

Co se týká nových verzí, je to samostatná diskuse, občas se chování potichu mění.

Bez problémů funguje najít/nahradit.

Vyberte sloupec tabulky (třeba Sloupec1), klikněte na najít, nahradit.
najít: null, nahradit: 0 je to celkem jedno. Jen je třeba kliknout na nahradit celou buňku.

Kontrola: V kódu je Replacer.ReplaceValue. Pokud ne, tak to opravte.

Dál. Parametry v Table.ReplaceValue mohou být funkce.
Pokud je funkcí hledaná nebo nahrazovaná hodnota je parametrem record odpovídající aktuálnímu řádku - stejné jako v addcolumn, ...)

Tj. co se nahrazuje (vygenerováno by mělo být null) nahraďte funkcí, která vrací hodnotu z prohedávaného sloupce. V tomto případě je to each [Sloupec1]. Sloupec dosaďte vlastní. (Je to funkce. Má generovat hodnotu buňky, která se bude nahrazovat. Jak si ji vytvoříte, taková bude.)

Čím nahradit (vygenerováno by mělo bý 0, jinak 3. parametr)
Funkce by měla být stejná, jako v případném addcolumn.
each [Sloupec1] + [další sloupec].

ps. Možnotí je samozřejmě více. Tuhle považuji za nejjednodušší.

Záleží na verzi.

Fungovala finta. V data,připojení si najděte to, které vytváří vaši tabulku v excelu a vytvořte si na některém listu její kopii.

Pak si tuto novou tabulku načtěte do pq, načtěte nová data, ... kontrola překrývajících se dat, ... a spojte je.

Finta je v tom, že pq nesmí o kopii vědět. Někdy bylo nutno vytvořit i druhou kopii, tu předchozí bylo možné smazat.

Asi nečtete odpovědi. eLCHa už odpověděl.
Rozumné řešení v podobě, kterou požadujete zřejmě neexistuje.

Pokud odmítáte power query i vba, pak zkuste navrhout nějaký jiný postup nebo použít jiný sw, např. některý z mnoha etl nástrojů.

@eLCHa
Na jeden problém je vždy více řešení.

Použil {"YY";"XX"}, i když v tomto případě bych tam nejspíš použil odkaz do tabulky, ve které by byly hledané řetězce. Tj. hledané hodnoty pak lze měnit/doplňovat bez změny vzorce + hledané hodnoty vidím v listu.

To je podle mne hlavní rozdíl proti původně použitému samostatnému testování jednotlivých klíčů.

Mimochodem, v případě, že prohledávaná data jsou velká (toto jistě není takový případ), tak ke zjišťování existence hodnoty používám raději funkce typu ...lookup, ...vyhledat,...

Rozdíl je v tom, že countif vždy prohlídne všechna data, vyhledávací funkce po nalezení shody končí. Data lze také často setřídit, a pak je hledání ještě rychlejší. Vyhledávací funkce také neprovádí konverze dat.

Rychlost závisí na počtu nalezených hodnot a na možnosti setřídit prohledávané pole.

Taky jde

=KDYŽ(SOUČIN.SKALÁRNÍ(--JE.ČISLO(HLEDAT({"YY";"XX"};A2)));"OK";"-")

Nechápu, co tím autor zamýšlel.

Tak jen co to dělá:

COUNTIF($PF$9:PF9;[Barva tyče])

prohledá sloupec PF od začátku až do předchozího řádku a spočítá, kolikrát v něm se vyskytuje každá (asi) barva z [Barva tyče]. Vrátí sloupec v rozsahu [Barva tyče].

Pak výsledek prohledá a vypíše, první barvu z [Barva tyče], která zatím nebyla nalezena.

Text je dobrý, ale...
a) Je náchylný na automatickou změnu typu
b) pokud se při zpracování používají funkce jakou sumif,... a číslo slouží jako klíč, tak i když je číslo uloženo jako text, včetně ', tak tyto funkce automaticky takový text převedou na číslo (včetně zaokrouhlení posledních pozic).

Úplně dobré řešení zřejmě není.

Možnosti:
- číslo vhodně rozdělit na 2 části a ty pak zpracovávat samostatně

- k číslu přidat textový znak (na začátek nebo na konec) - ne ' na začátek.

- zpracovávat v power query - ale to také není úplně bezpečné - "formátovat" jako měnu, nebo používat při výpočtech parametr Precission.Decimal. Stejně se to špatně hlídá. Pokud se s číslem neprovádí žádné výpočty, tak načíst jako text, zpracovat a vrátit. Zase pozor na automatické rozpoznání typu...

64 bit verzi excelu nepoužívám. Detaily např.:

https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2010/ee691831(v=office.14)?redirectedfrom=MSDN

Mimo to jsou hlášeny problémy s uvedenými funkcemi:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/94fbf641-3c9a-46e3-a8a0-bba10829e57d/update-vba-code-to-64-bit-from-32-bit?forum=exceldev

Jinak google doručí dost informací na 1. pokus:

https://www.google.com/search?q=win64+SHBrowseForFolderA+excel+vba

Oprav si deklarace api volání.

Nějak tak (netestoval jsem to):

#If VBA7 Then

Private Declare PtrSafe Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
(ByVal pidl As LongPtr, ByVal pszPath As String) As Boolean

Private Type BROWSEINFO
hOwner As LongPtr
pidlRoot As LongPtr
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As LongPtr
lParam As LongPtr
iImage As Long
End Type

Private Declare PtrSafe Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" _
(lpBrowseInfo As BROWSEINFO) As LongPtr
#Else
Private Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type

Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" _
(lpBrowseInfo As BROWSEINFO) As Long

Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

#End If


ps. Vždy upozorňuji na to, že tupé kopírování kódu není dobrý nápad.

Pokud to chápu, tak
Pokud je pro nějaké datum předchozí pracovní den dnes, tak vybarvit:

=WORKDAY(DATUM(rok;$B$2;C$2);-1;svátky)=DNES()

(vč. svátků - podle stejné logiky)

pokud máte novější verzi, tak to dělá funkce unique.
Jen je nutno nastavit 3. parametr na pravda.

Oba výsledky jsou správné. Záleží ale na tom, co chcete zjistit. Např. firma má více poboček. PRŮMĚR(D3:D123) spočítá průměrnou úspěšnost poboček,
SUMA(C3:C123)/SUMA(B3:B123) spočítá celkovou úspěšnost firmy.

Rozdíl? 100% úspěšnost u malé pobočky a 50% velké pobočky.

Na celkovém výsledku firmy se více projeví velká pobočka a v závislosti na rozdílu ve velikosti se úspěšnost firmy bude blížit k 50%. Průměrná úspěšnost poboček bude ale 75%.

Také lze použít kontingenční tabulku s datovým modelem.

Potřebná míra je např.:

suma1:=SUMX(DISTINCT(SELECTCOLUMNS(Tabulka1;"číslo 1";Tabulka1[číslo 1];"údaj 1";Tabulka1[údaj 1])); [údaj 1])

veny napsal/a:

doplňte si ještě jednu podmínku ...


Používám raději

= VYHLEDAT(A2;{1;11;21;31;41};{"1-10";"11-20";"21-30";"30-40";"40-50"})

Jen data obvykle zapíšu do sešitu.


Strana:  1 ... « předchozí  6 7 8 9 10 11 12 13 14   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

Vynásobit hodnoty kurzem - Power Query

Alfan • 26.4. 7:56

Relativní cesta - zdroje Power Query

Alfan • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

elninoslov • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

lubo • 25.4. 19:18

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 15:12

Relativní cesta - zdroje Power Query

Alfan • 25.4. 15:08

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 14:21