PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelreturnera det högsta värdet bakom ett referensvärde i en textmassareturnera det högsta värdet bakom ett referensvärde i en textmassa
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2018-04-18 13:46
 

Hej

Hur skriver man en formel eller om det blir en VBA kod.

Jag vill leta upp ett referensvärde och returnera eller markera det högsta/senaste värdet bakom

Det finns text båda framför och bakom nedan

Jag vill skriva in i en cell: knr432016 och få reda på vilket är den senaste ändringen (den med fet stil)

Antingen att jag får ut klockslaget/värdet eller att det markeras i texten

(08/26/2016 10:32:14) Ändrat (knr432016): 2016082610:32:14 
(06/10/2016 14:05:37) Ändrat (knr432016): 2016061014:05:37 

Med HITTA kan jag se den första knr432016

Hoppas ni förstår hur jag tänker

/Mats

Nytt inlägg
 2018-04-19 09:16
 

Skrev du fel i frågan? knr432016 ändring i augusti är senareän den du markerade.

Vi antar att:

  • Din data står i kolumn A
  • det du vill söka efter står i K1
  • och datum/tid alltid kommer efter "): " (3 tecken)

Då skulle du kunna fiska ut datum/tid-texten till b-kolumnen 

=EXTEXT(A1;SÖK($K$1;A1)+LÄNGD($K$1)+3;16)

eller så här om du vill slippa felmedelanden 

=OMFEL(EXTEXT(A1;SÖK($K$1;A1)+LÄNGD($K$1)+3;16);"")

Kopiera ner så långt det behövs. Eftersom den bara returnerar datumtexten om den hittar värdet i K1 så borde du -i teorin - kunna söka maxvärdet.

Problemet är att 2016082610:32:14 inte är ett tal som går att räkna med. Du måste göra om det till datum/tid. En ny hjälpformel i C kolumnen blir någonting i stil med:

=OMFEL(DATUM(VÄNSTER(B1;4);EXTEXT(B1;5;2);EXTEXT(B1;7;2))+TIDVÄRDE(EXTEXT(B1;9;8));"")

Kopiera ner så långt det behövs.

Du måste eventuellt ändra visningsformatet så att det ser ut som datum/tid. Markera kolumn C och tryck Ctrl+1. Välj ett datum elelr tidsformat som passar. Eller gå till anpassat och skriv in:

ÅÅÅÅ-MM-DD tt:mm:ss

För att det skall se ut som i cellen

Sen hämtar du ut maxdatum/tid (för de celler som innehåller värdet i K1) med hjälp av max:

=MAX(C:C)

Du kan dölja kolumn B/C eller göra dem väldigt smala.
 
I teorin skulle du kunna köra en matrisformel och skippa hjälpkolumnerna. Men eftersom datumet måste konverteras så blir den väldigt bökig. Om vi förutsätter att det "amerikanska" datumet är identiskt och att det alltids sår i börjana v cellen så kan man skriva någonting i den här stilen om vi nöjer oss med att tittta i 10 rader:
 
=MAX(OM($A$1:$A$10<>BYT.UT($A$1:$A$10;$K$1;"");DATUM(EXTEXT($A$1:$A$10;8;4);EXTEXT($A$1:$A$10;2;2);EXTEXT($A$1:$A$10;5;2))+TIDVÄRDE(EXTEXT($A$1:$A$10;13;8))))
Tryck Ctrl+shift+enter för att ändra till matrisformel (Det syns att det har blivit en matrisformeln genom att det formeln får måsvingar {}) 
{=MAX(OM($A$1:$A$10<>BYT.UT($A$1:$A$10;$K$1;"");DATUM(EXTEXT($A$1:$A$10;8;4);EXTEXT($A$1:$A$10;2;2);EXTEXT($A$1:$A$10;5;2))+TIDVÄRDE(EXTEXT($A$1:$A$10;13;8))))}
 
 
Men, jag skulle köra hjälpkolumnerna  varje dag i veckan. då ser du om något blir fel.
Nytt inlägg
 2018-04-19 11:58
 

Tack

Fungerar perfekt

Vad är det som styr till den senaste klockslaget

Har jag förstått funktionen rätt på Längd

Längd = sökvärde + 3 tecken returnera sen max 16 tecken

Om man vill ha den första hur skriver man då

 

Tack än en gång

 

/Mats

 

 

 

 

Nytt inlägg
 2018-04-19 14:02
 

EXTEXT hämtar ut mitten av en text (något slags korsords/göteborgshumor, EX från  tEXt). Det logiska namnet i engelsk excel är MID().  Den behöver veta vid vilket tecken du vill starta + hur lång text du vill ha. 

Längden på texten antar vi är = 16 tecken (eftersom vi tror att din datum/tid text alltid är 16 tecken lång)

För att hitta startpunkten kör man: 

SÖK() eller HITTA() anger vid vilket tecken den eftersökta  texten  knr432016 börjar. I ditt exempel är det tecken 31

=SÖK($K$1;A1) 

För att hitta början av datumtexten måste vi lägga på längden av den eftersökta texten (9) för att hitta slutet + 3 tecken för för ":) "=43

=SÖK($K$1;A1) + LÄNGD($K$1) + 3

För att hitta det minsta/första datumet så kan du testa

=MIN(C:C)

I vissa fall fungerar det inte eftersom till synes tomma celler ibland räknas som 0 (och då blir de natruligtvis minst). Då kommer det att stå 1900-01-00 00:00. Då får du istället testa:

=STÖRSTA(C:C;ANTAL.OM(C:C;">0"))

Det är onödigt sverbegripligt om MIN fungerar men kan vara bra att ha som reserv.

/A. nony Mouse

 

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelreturnera det högsta värdet bakom ett referensvärde i en textmassareturnera det högsta värdet bakom ett referensvärde i en textmassa

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter