< návrat zpět

MS Excel


Téma: Počet unikátních položek v rámci části Tabulky rss

Zaslal/a 7.3.2017 11:28

Nebudu z dané úlohy dělat "challenge", jen mě zajímá, jak byste na to šli...

Ve sloupci C tabulky Tabulka1 je potřeba zpracovat vzorec, který v rámci jedné objednávky (O1, O2, ...) najde počet unikátních (neprázdných) dodavatelů.

Teorie: Nabízí se SOUČIN.SKALÁRNÍ a trik SUMA(1/COUNTIF(data;data)). Jenže..., a kromě toho tu máme strukturované odkazy Tabulky, které pracují trochu jinak.

Příloha: png35314_tabulka_unikaty.png (24kB, staženo 59x)
35314_tabulka_unikaty.png
Zaslat odpověď >

icon #035319
eLCHa
Jestli je možno použít pomocný sloupec tak
Junik:=(COUNTIFS(Tabulka1[[#Záhlaví];[Objednávka]]:[@Objednávka];[@Objednávka];Tabulka1[[#Záhlaví];[Dodavatel]]:[@Dodavatel];[@Dodavatel])=1)/1Pak výsledek=SUMIFS([Junik];[Objednávka];[@Objednávka])
Asi to půjde i bez toho pomocného, ale teď nemám čas to koumat.citovat
#035326
avatar
Rovnou říkám, že sám zatím nemám uspokojivé řešení a nevím, jak to udělat bez pomocného sloupce. Děkuju za čas, ještě musím taky pořešit něco jiného.citovat
icon #035368
eLCHa
Tabulka umožňuje vložit maticový vzorec s automatickým "rozkopírováním". Takže je to vlastně jednoduché.

Maticově=SUMA(KDYŽ([Dodavatel]<>"";KDYŽ([Objednávka]=[@Objednávka];1/COUNTIFS([Objednávka];[Objednávka];[Dodavatel];[Dodavatel]);0);0))citovat
#035370
avatar
Vyzkouším, děkuju za čas. Popravdě se maticového vzorce trochu bojím, stejně jako "středně rychlé" funkce SOUČIN.SKALÁRNÍ, která by to neřešila beze zbytku. Tady holt nejspíš potřebujeme pomocný sloupec, resp. mezikrok na generování matice. Záznamů ke zpracování bude údajně okolo 20 000. Momentálně dělám kontrolu makrem. Nějak to zkusím rozseknout.citovat
icon #035371
eLCHa
Pak je ještě možno MSQuerySELECT
t2.[Objednávka],
Count(t2.Dodavatel) AS Pocet
FROM
(
SELECT DISTINCT
t1.[Objednávka],
t1.Dodavatel
FROM
`C:\...\Sešit1.xlsx`.`List1$` AS t1
WHERE
t1.Dodavatel Is Not Null
) AS t2
GROUP BY
t2.[Objednávka]

Případně rovnouSELECT
t4.[Objednávka],
t4.Dodavatel,
t3.Pocet
FROM
`C:\...\Sešit1.xlsx`.`List1$` AS t4
LEFT JOIN
(
SELECT
t2.[Objednávka],
Count(t2.Dodavatel) AS Pocet
FROM
(
SELECT DISTINCT
t1.[Objednávka],
t1.Dodavatel
FROM
`C:\...\Sešit1.xlsx`.`List1$` AS t1
WHERE
t1.Dodavatel Is Not Null
) AS t2
GROUP BY
t2.[Objednávka]
) AS t3 ON
t4.[Objednávka] = t3.[Objednávka]
citovat

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

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.

On-line nástroje