Avatar billede finnholm Nybegynder
06. maj 2003 - 15:44 Der er 19 kommentarer og
2 løsninger

Find sidst udfyldte værdi og hent værdien.

Jeg skal udsøge det sidst(nederste) udfyldte felt i en kolonne.

Eks. for maj
Dag KG produceret
01 321
02 600
03 (weekend)
04
05 400
06 200
07
08

Her vil jeg altså udsøge tallet "200"!

Hvordan gøres det?
Avatar billede janvogt Praktikant
06. maj 2003 - 16:07 #1
Du kan bruge denne makro (kolonne A):

Sub LastCellInColumn()
  Range("A65536").End(xlup).Select
End Sub
Avatar billede janvogt Praktikant
06. maj 2003 - 16:08 #2
Sorry, læste ikke dit spørgsmål helt færdigt.
Makroen markerer kun den sidste celle .....
Avatar billede bak Forsker
06. maj 2003 - 16:09 #3
Denne funktion kan udsøge de 200, men der er den begrænsning at der ikke må være tomme celle ind imellem.
=OFFSET(B1;COUNTA(B2:B100);0)

=FORSKYDNING(B1;TÆLV(B2:B100);0)
Avatar billede janvogt Praktikant
06. maj 2003 - 16:16 #4
Denne skulle også kunne bruges:

=OFFSET(A1;MATCH(MAX(A1:A9)+1;A1:A9;1)-1;0)
Avatar billede janvogt Praktikant
06. maj 2003 - 16:17 #5
På dansk:
=FORSKYDNING(A1;SAMMENLIGN(MAKS(A1:A9)+1;A1:A9;1)-1;0)
Avatar billede bak Forsker
06. maj 2003 - 16:19 #6
Denne arrayformel er også ligeglad med de tomme
Indtastning afsluttes med ctrl-shift-enter i stedet for bare enter

=INDEX(B1:B500;MAX(ROW(B1:B500)*(B1:B500<>"")))

=INDEKS(B1:B500;MAKS(RÆKKE(B1:B500)*(B1:B500<>"")))
Avatar billede janvogt Praktikant
06. maj 2003 - 16:25 #7
Det har min vist taget højde for .... :-)
Avatar billede bak Forsker
06. maj 2003 - 16:32 #8
Yes, fin flot formel du har der, Jan. Nu har jeg brugt 10 min. på at finde ud af hvorfor den virker :-)
Avatar billede janvogt Praktikant
06. maj 2003 - 16:44 #9
Brugte også en del tid (efter jeg havde fattet hvad opgaven gik ud på) :-)
Havde set formlen engang og vidste, at det var noget med MATCH/MAKS ....
Avatar billede finnholm Nybegynder
06. maj 2003 - 20:44 #10
Jeg vil teste mit ark i morgen og lige vende tilbage. Men det lader jo også til at have givet jer lidt udfordring, så det var jo nok ikke uden grund at ikke sådan lige kunne finde en løsning på opgaver.
Avatar billede finnholm Nybegynder
07. maj 2003 - 07:34 #11
Ja jeg kan jo se at begge forslag virker!
Vil en af jer (gerne begge) giver en forklaring på hvad formlen egentlig gør?
Avatar billede janvogt Praktikant
07. maj 2003 - 09:39 #12
Joda, jeg skal gerne prøve ....

=FORSKYDNING(A1;SAMMENLIGN(MAKS(A1:A9)+1;A1:A9;1)-1;0)

FORSKYDNING-formlen bruges til at flytte x antal rækker og kolonner fra et givent punkt.

I dette eksempel er udgangspunktet celle A1.
SAMMENLIGN(MAKS(A1:A9)+1;A1:A9;1)-1 fastlægger hvor mange rækker der skal forskydes.
SAMMENLIGN har følgende argumenter:
=SAMMENLIGN(opslagsværdi;opslagsområde;sammenligningstype)
Opslagsværdien er MAKS(A1:A9)+1 altså den højeste værdi i området A1:A9 plus 1.
Opslagsområdet er A1:A9.

Hvis man bruger sammenligningstypen "1" skal data normalt være sorteret, men da dette jo ikke er tilfældet her, vil den fortsætte til den sidste værdi.
Der skal dog lige trækkes én fra ellers springer den en række for langt ned - derfor de "-1" i formlen.

Det sidste "0" i forskydningsformlen fastslår, at vi skal blive i A-kolonnen.
Avatar billede finnholm Nybegynder
07. maj 2003 - 09:47 #13
Jeg forstår ikke helt det med sammenlign. Du søger efter maksværdien, men det er jo ikke den nederst linie. ?
Avatar billede bak Forsker
07. maj 2003 - 10:02 #14
Vi søger ikke efter max-værdien, men derimod efter max-værdi + 1.
Sammenlign tror at data er sorteret i stigende rækkefølge.
Da den mens den søger nedad ikke finder max-værdi + 1, stopper den og returnerer indexet på den celle der er blank lige under sidste celle med værdi.
Avatar billede finnholm Nybegynder
07. maj 2003 - 10:05 #15
Okay - det er noget man ved når man har lidt erfaring med formlen. Tusind tak - så forstår jeg hele sammenhængen.
Avatar billede bak Forsker
07. maj 2003 - 10:10 #16
=INDEKS(B1:B500;MAKS(RÆKKE(B1:B500)*(B1:B500<>"")))
er måske nemmere at forstå
RÆKKE(B1:B500)*(B1:B500<>"") danner et intern array (matrix) med et rækkenummer for alle IKKE blanke celler
MAKS(intern matrix)
finder så det højeste af disse rækkenumre
INDEKS(B1:B500;Højeste rækkenummer)
returnerer nu værdien af den celle der findes højeste rækkenummer nede i området B1:B500
Avatar billede janvogt Praktikant
07. maj 2003 - 10:12 #17
Nej, men for at kunne bruge sammenligningstypen 1 skal data normalt være sorteret stigende. Som jeg skriver er dette ikke tilfældet her, så formlen vil fortsætte til bunden. Den vil jo aldrig finde en passende værdi, da den jo søger efter maks-værdien plus én.

Sammenligningstype 1 finder den største værdi, som er mindre end eller lig med opslagsværdien.
Se evt. hjælpen til formlen.
Avatar billede finnholm Nybegynder
07. maj 2003 - 10:13 #18
Ja - der er sammenhængen lidt mere logisk. Her er det formlen "række" der jo udpeger det rækkenummer der skal anvendes.
Avatar billede janvogt Praktikant
07. maj 2003 - 10:14 #19
Nå, der var sket lidt i mellemtiden :-)
Avatar billede finnholm Nybegynder
07. maj 2003 - 10:15 #20
Ja okay Jan. Maks formlen bruger du udlukkede for at danne en værdi der IKKE findes i listen!
Avatar billede janvogt Praktikant
07. maj 2003 - 10:23 #21
Ja, men jeg må da erkende, at formlen er lidt "langhåret" men den virker da :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester