» »

Excell in lookup

Excell in lookup

borzon ::

Pozdravljeni,

Ker sem zelo nov v tem me zanima sledeče.
Kako bi v excelu vba napisal kodo, da mi po zagonu makroja v listu z imenom Podatki najde v stolpcu A najde neko vrednost npr 20150101 in da mi vrne podatek v kateri vrstici na listu se nahaja ta podatek.

Hvala

kljuka13 ::

Za to načeloma ne potrebuješ makrov ali VBA, temveč lahko uporabiš kar funkcijo MATCH, ki vrne (relativno) zaporedno številko vrstice.

Če pa potrebuješ res v VBA, pa lahko isto funkcijo kličeš z WorksheetFunction.Match().

borzon ::

kljuka13 je izjavil:

Za to načeloma ne potrebuješ makrov ali VBA, temveč lahko uporabiš kar funkcijo MATCH, ki vrne (relativno) zaporedno številko vrstice.

Če pa potrebuješ res v VBA, pa lahko isto funkcijo kličeš z WorksheetFunction.Match().

Zahvaljujem se ti za hiter odgovor.
No če malo bolj podrobno opiše moj "projekt". Imam že izdelan kar obsiren makro. Ta maKro bi rad nadgradil tako, da bi računal vsoto nekih stevil v stoplcu B.
Torej v stolpcu A imam datume v formatu 20220101, 20220102 ... v stoplcu B imam neke stroske oziroma stevila.
Hotel bi se narediti neko formo, na kateri bi v prvo vrstico vpisal prvi datum npr 20220101 v drugo pa drugi datum npr. 20220501. Po pritisku gumba izracunaj bi program dobil z vlookup prvi datum v stolpcu A, in vrnil stevilko vrstice npr.21. Nato bi program z vlookup nasel drugi datum in vrnil stevilko vrstice npr. 55. Potem bi z funkcijo =sum(B21:B55) sestel vse vrednosti v iskanem obdobju.

Poznate se kako bolj enostavno resitev.
Hvala

kljuka13 ::

Konkretni primer je ponovno najlažje rešiti z uporabo formule, in sicer SUMIFS.

Primer na sliki:

=SUMIFS(D4:D18; C4:C18; ">=" & D21; C4:C18; "<=" & D22)


 Formula za vsoto

Formula za vsoto

borzon ::

Pozdravljen,

Poizkusil sem na sledeči način ampak ne deluje najbolj oziroma sploh ne deluje.

Mogoče vidiš v čem bi bila težava?

coda:

Private Sub CommandButton4_Click() ' Po pritisku na gumb izračunaj vrednost

Dim datum_1 As String
Dim datum_2 As String
Dim sestevek As Long

    datum_1 = TextBox1.Value ' Iz TextBox 1 se prepise vrednost v spremenljivko datum_1
    datum_2 = TextBox2.Value ' Iz TextBox 2 se prepise vrednost v spremenljivko datum_2
   
   sestevek = SUMIFS(Sheets("Izračuni").Select("CT3"):Sheets("Izračuni").Select("CT8768"); Sheets("Izračuni").Select("CS3"):Sheets("Izračuni").Select("CS8768"); ">=" & datum_1; Sheets("Izračuni").Select("CS3"):Sheets("Izračuni").Select("CS8768"); "<=" & datum_2);
   
    TextBox3.text = sestevek ' V TextBox 3 se izpiše izračunana vrednost

End Sub

kljuka13 ::

Težav je več. Do SUMIFS je treba dostopati prek WorksheetFunction.SumIfs. Območja je treba podajati kot Range ...

Najbolje, da si tukaj ogledaš par primerov.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

VBA Excel in iskanje enakih vrednosti med listi

Oddelek: Programiranje
172149 (1712) prtenjam
»

EXCEL vgnezdenje dveh vlookup funkcij?

Oddelek: Programska oprema
101891 (1590) prtenjam
»

excel

Oddelek: Programska oprema
324767 (3376) xtrat
»

excell razvrščanje

Oddelek: Programska oprema
214119 (3763) rferrari
»

[excel] kako dobit ?

Oddelek: Programska oprema
51492 (1444) jky

Več podobnih tem