Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

aus einer Zahl eine Minus-Zahl machen
#1
Hallo,

ich würde gerne in einer Tabelle mit ca. 4.000 Zeilen aus einer Zahl z.B. 100 eine -100 machen, wenn in der Spalte daneben ein S steht
Sie ungefähr so aus:

A       B     C
100    H
100     S

Also wenn in einer Zeile in B ein S steht soll er (A * -1 ) nehmen, wenn H dann so lassen. wie bekomme ich das hin das er das für jede Zeile prüft und durchführt?

Freue mich über eine detaillierte Beschreibung , da ich nicht so firm in Excel bin

Vielen Dank

chefe321[
Bild bitte so als Datei hochladen: Klick mich!
]


Angehängte Dateien
.xlsx   Beispiel-Tabelle.xlsx (Größe: 244,22 KB / Downloads: 5)
Antworten Top
#2
Hallo,
in C1:
=WENN(B1="S";-A1;A1)

Falls eine Auswertung per Pivot erfolgen soll, würde ich die Tabelle über den Tab Daten -> aus Tabelle... einlesen und im PowerQuery Editor aufbereiten (Benutzerdefinierte Spalte einfügen).
Einführung:
https://www.youtube.com/watch?v=hEI5xckBKs8
https://www.youtube.com/watch?v=DuMuna_TIPc
Cadmus
Antworten Top
#3
Hi,

wenn ich mal davon ausgehe, dass in C:F im Original weitere Daten stehen, wird das wohl so nicht ohne weiteres gehen. Um die Daten in der gleichen Spalte umzuwandeln, muß man mit VBA arbeiten.

Als einfaches Beispiel:


Code:
Sub wechseln()
Dim loCo as long
Dim loLast as long

lolast=cells(rows.count,1).end(xlup).row
for loco=1 to lolast
if cells(loco,2)="S" then cells(loco,1)=-cells(loco,1)
next
End Sub
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#4
Hallo,

das wäre mein Vorschlag (geht in beide Richtungen, ist wiederholt anwendbar und etwas schneller):

Code:
Sub Wechseln()
  Dim i As Long
  Dim varD As Variant
 
  With Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
    varD = .Resize(, 2).Value
    For i = 1 To UBound(varD)
      Select Case varD(i, 2)
        Case "S"
          varD(i, 1) = -Abs(varD(i, 1))
        Case "H"
          varD(i, 1) = Abs(varD(i, 1))
      End Select
    Next
    .Value = varD
  End With
End Sub

Gruß Uwe
Antworten Top
#5
Hallo Uwe,

dein Tipp klappt wunderbar.

Auch vielen Dank an alle anderen die Ihre Zeit geopfert haben

Grüsse

chefe321
Antworten Top
#6
Oder:

Code:
Sub M_snb()
  UsedRange.Columns(1).Name = "snb"
 
  [snb] = [index(snb*(1-2*(offset(snb,,1)="s")),)]
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste