< návrat zpět

MS Excel


Téma: Porovnání dvou polí - VBA rss

Zaslal/a 5.9.2017 13:48

Zdravím,

mám prosím takvý dotaz:

mám dvě dynamické pole (Day1 a Day2). V jednom poli je uloženo 6 jmen a v jednom 5 jmen. Potřebuji, abych mohl tyto dvě pole porovnat a aby výstup byl takový:

Program vypíše, jaké jméno je v Day1 ale není v Day2 a zároveň číslovkou napíše, o kolik takových jmen se jedná (v našem případě to je logicky 1).

Později bude tento sysém aplikovaný na mnohem více jmen. Takže potřebuji aby to bylo vyřešeno makrem.

Za rady moc díky :)

Zaslat odpověď >

Strana:  « předchozí  1 2 3 4 5   další »
#037611
elninoslov
Dobrý nápad. Neskôr na to snáď mrknem. Teraz mám tú úpravu na čítanie z Ext. súborov rozpracovanú, len nemám to uhladené a okomentované. Možno večer...
Posielam odkaz na súbory

ale ešte raz POZOR, nieje to dokončené, sú tam zbytočné premenné, neodladené prípadné chyby pri otváraní, vyremované riadky atď. Je to iba rozpracované, teda iba použite iba na pokusy.

Ale keď má eLCHa podstatne rýchlejší nápad, tak myslím, že je dokončenie tohoto aj zbytočné... Inak s tými externými súbormi to trvá cca rovnako dlho 20 s (u mňa).citovat
icon #037615
eLCHa
@elninoslov
Ale keď má eLCHa podstatne rýchlejší nápad, tak myslím, že je dokončenie tohoto aj zbytočné... Inak s tými externými súbormi to trvá cca rovnako dlho 20 s (u mňa).

Není to zbytečné. já myslím, že jemu nezáleží na tom, jestli to jede 20s nebo 40s, ale jestli to funguje a správně. A když už to máte skoro hotové...

Mně opravdu jen zajímalo, jestli je textový řetězec opravdu to nejrychlejší a moc se mi to nechtělo líbit.
Zkusil jsem fci Filter, ale ta byla pomalejší a pak mně napadlo Collection + named key.

Jinak já běžně také používám stringy, ale ne na tak rozsáhlá pole.

Další možností je ADO a příkaz JOIN, také by bylo zajímavé otestovat, jak to vychází...citovat
#037617
avatar
Ahoj elninoslov,

vážně si vážím Tvého času a snahu mi pomoci.

Přesně jak píše eLCHa. Jestli to jede 20s, 40s, nebo minutu, mi nevadí. Určitě kvůli pár sekundám nebudeme předělávat celý program. Pokud by si měl čas (klidně večer, zítra...) verzi doladit, byl bych vážně vděčný :). Mezi tím se podívám, na to, co jsi již poslal.

EDIT:

Funguje to perfektně... dosadil jsem si do tvých souboru me data (jen na test) a maká to superně.
Zkusím Ti zde napsat, další krok, co výsledmé makro musí dělat. myslím si, že to už bude jednoduché, oproti obtížnosti toho, co jsi již napsal.

Jde o toto.

Porovnám jména. Ti co nejsou v prvý a jsou v druhý, vypíšu. To funguje super.

Nyní potřebuji toto. Je zde třetí sloupec (opět pořád na tom samém místě v každém soubor, tak jako jména), ve kterém jsou čísla. Například: David Novák 15410

Potřeboval bych, aby program u těch jmen které jsou v obojích souborech porovnal tyto čísla a napsal v procentech jejich rozdíl. Přikládám zde Tvá data, jen s menším počtem jmen a dopíši zde čísla.

Pokud by jsi měl čas připsat toto porovnání, budeme se blížit rychle ke zdárnému konci.

Ještě jednou díky za čas a pomoc :)

Díky moc :)

Odkaz je na úschovně, protože v práci nemám přístup na google.drive... http://www.uschovna.cz/zasilka/PPGX2SA5GHPSBDA3-PCB/citovat
#037621
Stalker
@David123

Měl bych pro tebe jednu informaci. Pokud chceš aby Ti někdo udělal řešení tzv. na klíč nebo chceš od někoho radu, tak základem všeho je přiložit vzorový soubor a popsat problém - zadání.
Ten popis má být kompletní !!! Nikoliv na etapy co tu předvádíš.

Elninoslov tu vytvoří nějaký kód a pak přijdeš s dost zásadní změnou - s tím, že data se vlastně mají tahat z externích souborů. Přepíše kód a ty znovu přijdeš s další změnou. Elninoslov je evidentně dobrák, že se tomu dále věnuje i když se mu snažíš házet klacky pod nohy. Ono se může stát, že trpělivost jednou přeteče a někdo se Ti na to .....

Ona pak Tvá věta:
"vážně si vážím Tvého času a snahu mi pomoci."
vyznívá tak nějak ironicky.

Ono tohle zadávání úkolů po částech je horší než lepší.

Vím, že s makry jsi na úplném začátku, ale je to stejné jako kdyby za Tebou v zaměstnání někdo přišel, zadal Ti práci a pak v průběhu měnil ono zadání a Ty jsi to stále předělával od začátku.citovat
#037622
avatar
Ahoj Stalker.

vše co píšeš je mi naprosto jasné... Jelikož se jedná o složitější program, nechtěl jsem ho hned celý nahodit. Nehledě na to, že jsem se třeba včera teprve dozvěděl, že by bylo fajn porovnávat i hodnoty v dalším sloupci. Myslel jsem, že jestli program tahá data z externího souboru nebo z toho kde je makro, je jedno. Ze se "jenom" změní cesta ke zdrojovým datům. To že to bude náročné na změnu jsem nevěděl, protože přesně jak píšeš, zkušenost s makry nemam. Věř mi, že jsem naprosto "nadšený" že mě pověřili v práci takovým krásným úkolem jako je to, co tady řeším... Bohužel sám si rady nevím, a tak se spoléhám právě na dobráky, kteří poradí... To že jsem přidal porovnání třetího sloupce, není přece změna, na změnění celého kódu, ale na připsání další podmínky... Jelikož makra neumím, jen si tak nějak představuji, jak by to mohlo jít. Pokud si to představuji špatně, tak se omlouvám... Jelikož se jedná o veřejné fórum a lidi zde radí zcela dobrovolně a ve svém volném čase, myslím, že poděkování na místě je... Pokud si někdo myslí, že to je ironické, za to nemůžu. Poděkování je to nejmenší, co mohu udělat.. K tvému poslednímu odstavci... Ano přišel za mnou v pondělí kolega a řekl, že tam musím přidat ještě ty čísla... takže přesně to se mi stalo...

Pokud by elninoslov byl ochotný semnou dále spolupracovat, moc by mi to pomohlo (vyřešilo problém). Poté, co se do kódu dívám, pomalu se do toho dostávám... Ale jako začátečník bych nikdy to co mi elninoslov poslal, nenapsal...citovat
#037624
elninoslov
Tiež ma až hrklo, keď som si prečítal o ďalšom stĺpci, a o pláne to ďalej kúskovať, ale budiš, keď budem môcť, tak to ešte prerobím, ale do nekonečna rozhodne nie. Ja sem mrknem X-krát denne, ale len na skok. Žiaľ potrebujem nejaký ucelený kus času na to, čo nemám. Včera som o polnoci zase zaspal za PC, kurňa ...citovat
#037628
Stalker
@David123
Jelikož se jedná o složitější program, nechtěl jsem ho hned celý nahodit
A to je právě ono, na co jsem Tě chtěl upozornit. To že budeš celý problém dávkovat po kapkách je kontraproduktivní.

Myslel jsem, že jestli program tahá data z externího souboru nebo z toho kde je makro, je jedno.
Ano programu je to jedno, ale někdo ten kód přece musí napsat je dost rozdíl tahat data z listu onoho souboru kde je makro umístěno a nebo tahat data z externích souborů - je zde několik problémů, které je třeba ošetřit (jméno souboru, jméno listu, co se stane pokud se soubor nenalezne tam kde by měl být atd).

To že jsem přidal porovnání třetího sloupce, není přece změna, na změnění celého kódu, ale na připsání další podmínky...
Opět záleží jak je dosavadní kód sepsán. Může a nemusí, ono přece nejde o to jen kupit pod sebe nějaké podmínky, ale je potřeba ošetřit případné chybové stavy, ale to už Ti tu elninoslov psal.

S tou ironií sem to mysle tak, že poděkuješ za čas věnovaný Tvému problému s tím, že není potřeba kód přepisovat pro úsporu času (běhu makra 20s vs 40s), ale jak už sem psal na začátku, zadání dávkuješ po kapkách.

Jelikož se jedná o veřejné fórum a lidi zde radí zcela dobrovolně a ve svém volném čase, myslím, že poděkování na místě je...
Ano s tím naprosto souhlasím.

Vše vychází z toho, že nemáš s makry (programováním) zatím zkušenosti. Jen sem Tě chtěl upozornit na to, že polovičaté zadání je na dvě věci nic víc. Pak už jen záleží na rádci, jek se k tomu postaví (čti než v něm bouchnou saze a vyse*e se na to).

Přeji Ti, ať má elninoslov pevné nervy 2
a podaří se dosáhnout kýženého výsledku.citovat
#037629
avatar
Na popud Stalkera zde napišu kompletně o co pujde... Chtěl jsem to původně říkat po částech, aby nedošlo k nějakému nedorozumění, ale hodím to tedy celé:

Zde přikládám vzorové data, který celý problém popíše. Ale většinu již (podle mě)elninoslov udělal.

Přikládám dva soubory... během roku těch souborů bude 12. Leden - Prosinec. Potřebuji, abych si mohl vybrat dva měsíce. Například Leden a Únor. A po stisknutí tlačítka, mi program porovná hodnoty u jednotlivých jmen a zobrazí graf, kde bude součet procent

1) jeden graf zobrazí součty procent za oddělení
2) Druhý graf zobrazí součty procent za města¨

Tím postupným řešením problému, jse se chtěl vyhnout tomu, aby nedošlo třeba k nepochopení a někdo by se drbal s programem, který by byl nakonec nanic... Je popsanému problému dobře rozumět? Pokud ne, radši napiš a já to ještě vysvětlím. Aby jsi neztrácel čas
Díky moc... :)
Příloha: zip37629_obchod.zip (15kB, staženo 19x)
citovat
#037640
elninoslov
Čože? Vy potom nepotrebujete jedno porovnanie, ale hneď 2 (to nieje problém, lebo to bude len druhá časť konštrukcie IF). Lenže ako čítam, ďalšia pre Vás banalita na napísanie, je veľká komplikácia na naprogramovanie - potrebujete aj údaje z ostatných stĺpcov (do grafov ako filtre). To treba celé zase premyslieť, prekopať, doplniť. A ako čerešňa na vrchu, sa bude jednať o dynamicky sa meniaci počet súborov, z ktorých chcete vyberať. No tak toto sa zadaniu nepodobá vôbec, ani prvému, ani druhému, ani tretiemu.

Chápem, že sa tomu nerozumiete, a len nám kopírujete požiadavky vedenia, ale mňa to už prestáva baviť. Dnes som začal prerábať opäť kód, a čítam zase o filtroch pre graf a pod.

Navrhujem: urobte nám takú prílohu, kde bude ukázaný na príklade 10 mien výsledok. Grafický výsledok. Normálne manuálne napíšte 10 mien v jednom stĺpci, 8 v druhom, to budú akože mená z mesiacov. Potom na druhý list manuálne vyberte tých 5 (alebo koľko nebude existovať v druhom poli) z prvého poľa a capnite ich do toho druhého listu, tak a tam kde ich má akože makro dať, a s ostatnými informáciami ku každému menu, ktoré tam chcete mať, presne v stĺpcoch, ktoré tam chcete mať. A my sa pokúsime to zautomatizovať.

Vy nám nedávate žiaden vzor ako má vyzerať výsledok. Toto vlákno má 4 str. a podľa mňa sme na začiatku.citovat
icon #037644
avatar
Mno, myslim, ze bezplatna pomoc by mala mat nejake medze. Na druhej strane, pokial sa tu riesia veci, za dodanie ktorych je OP v praci plateny, tak by som sa teda tiez prihlasil. Mam par veciciek, ktore musim vytvorit, radsej by som ale travil cas windsurfingom, tak keby si sa elninoslov nahodou nudil, tak by si mi mohol pomoct s vecmi do prace, ja si potom budem vazit tvoj cas, slubujem, a zaplati ti za to pan boh :)citovat

Strana:  « předchozí  1 2 3 4 5   další »

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