[LØST] Hvis værdi=?

Brugerhjælp og support til regneark i LibreOffice Calc

Moderator: Lodahl

SME
Posts: 163
Joined: 29. Sep 2008 11:05
Location: Silkeborg, Danmark
Contact:

Post by SME »

:shock:

Jeg tror, at jeg skal sidde med materialet i hånden for at kunne komme med et kvalificeret løsning, og da jeg ikke tror du vil sende en masse følsom data til Mr. X "from the Internet", er det okay vi stopper her. :wink:
Det er altså hvis du fik en løsning der kunne bruges.
OOo 3.1 kører fint på Vista Home Premium.
SnowmanDK
Posts: 23
Joined: 16. Jun 2009 12:16
Location: Hammel

Post by SnowmanDK »

Da jeg ikke vil være skyld i at du mister din nattesøvn, tror jeg bare vi skal lade det ligge :wink:
Men mange tak for den hjælp I begge har givet mig. :)
Det er et stort skridt i den rigtige retning, så med lidt tålmodighed skal jeg nok finde den endelige løsning.
Jens S
Posts: 1091
Joined: 25. Mar 2007 22:42

Post by Jens S »

Prøv at vende tilbage til mit første forslag, indtast i B1 og træk nedad:
=SAMMENLIGN(A1;$E$1:$E$100;0)

men først vil jeg lave sammenligningskolonne E:

1. Marker alle dine tal i kolonne A
2. Menu: Data>Filter>Standardfilter
3. Kolonne A = -ikke tom-
4. Flere
5. x Kopier resultater til E1
x Kun unikke poster

mvh
Jens
SnowmanDK
Posts: 23
Joined: 16. Jun 2009 12:16
Location: Hammel

Post by SnowmanDK »

Tak for forslaget Jens, men det ser ud til at filteret dør når den er nået ca 220 rækker ned. Så stopper den ganske simpelt med at lave udregninger.

Slap du nu bare af :)

Jeg skal nok smide en besked her hvis jeg får det løst ;)
SnowmanDK
Posts: 23
Joined: 16. Jun 2009 12:16
Location: Hammel

Post by SnowmanDK »

Så fandt jeg en løsning.
Og som lovet er den her.
Det er nok ikke den mest optimale, men den virker.
Jeg skrev en makro i Basic (da jeg kender VB i forvejen).
Den ser ud som følger:

Code: Select all

REM  *****  BASIC  *****
Sub Main
	Dim Doc As Object
	Dim Sheet As Object
	Dim SourceCell As Object
	Dim DestCell As Object
	Dim CompareCell As Object
	Dim StartRow As Integer
	Dim EndRow as Integer
	Dim SourceColumn as Integer
	Dim DestinationColumn as Integer
	Dim Counter as Integer
	Doc = ThisComponent
	Counter = 1

	'-- DER MÅ IKKE REDIGERES OVENFOR DENNE LINIE ------------------------------------------
	Sheet = Doc.Sheets(0) 'Vælger hvilken fane der skal behandles (0=fane 1, 1=fane 2 o.s.v.)
	SourceColumn = 1 'Vælger kolonnen med kildedata (EAN numre). 0=kolonne A, 1=kolonne B o.s.v.
	DestinationColumn = 2 'Vælger destinationskolonnen (til fortløbende numre). 0=kolonne A, 1=kolonne B o.s.v.
	StartRow = 0 'Vælger den første række der skal behandles. 0=række 1, 1=række 2 o.s.v.
	EndRow = 1500 'Vælger den sidste række der skal behandles. 0=række 1, 1=række 2 o.s.v.
	'-- DER MÅ IKKE REDIGERES NEDENFOR DENNE LINIE ------------------------------------------

 	For i1 = StartRow to EndRow
 		SourceCell = Sheet.getCellByPosition(SourceColumn, i1)
 		DestCell = Sheet.getCellByPosition(DestinationColumn, i1)
		If SourceCell.Value < 1 Then
			Goto GetNextValue
		EndIf
 		For i2 = StartRow to EndRow
	 		CompareCell = Sheet.getCellByPosition(SourceColumn, i2)
	 		DestCell = Sheet.getCellByPosition(DestinationColumn, i2)
			If CompareCell.Value = SourceCell.Value And DestCell.Value < 1 Counter Then
					Counter = DestCell.Value + 1
				EndIf
 		Next
 		GetNextValue:
 	Next
End Sub
Post Reply