
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.
xlnc(7.3.2017 16:50)citovat#035326 
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.

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))
xlnc(8.3.2017 11:19)citovat#035370 
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.

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]