forajido
Hola
Tengo una columna con dirección IP.
Quiero hacer lo siguiente:
Ejemplo de dirección IP 172.180.180.34
Octeto 2
Tome el número del octeto 2 y réstelo con 176. Obtenga el número y elija un carácter de una variable
Variable = «0123456789abcdefghijklmnopqrstuvwxyz»
Entonces, si el octeto 2 es 180, el resultado sería:
180-176 = 4
Valor después de la posición 4 de la variable = 4
Octeto3
Convertir el número a hexadecimal
Entonces el octeto 3 es 180 y sería B4
Resultado en nuevo columna
resultado octeto 2+resultado octeto 3
3B4
v-kelly-msft
En respuesta a forajido
Hola @desperado,
Luego use el siguiente código:
let
IP2Number = (
IP as text
) => let
currentIP = IP,
Alfa = {"0".."9"} & {"A".."Z"},
ListOfOctets = Text.Split(currentIP, "."),
Octet2 = Alfa{Value.Subtract(Value.FromText(ListOfOctets{1}),176)},
Octet3 = Number.ToText(Value.FromText(ListOfOctets{2}), "x"),
Result = try Text.Combine({Octet2, Octet3}) otherwise "unknown"
in
Result
in
IP2Number
Y tu verás:
Para el archivo .pbix actualizado, consulte el archivo adjunto.
Atentamente,
Kelly
¿Respondí tu pregunta? ¡Marca mi publicación como una solución!
forajido
damas y caballeros
Esta es mi primera función de Power Query.
Basado en el escenario anterior, esto es lo que descubrí.
————————————————– —–
dejar
Número IP2 = (
IP como texto
) => dejar
IP actual = IP,
Alfa = {«0»..»9″} & {«A»..»Z»},
ListaDeOctetos = Texto.Dividir(IPactual, «.»),
Octeto2 = Alfa{Valor.Subtract(Valor.FromText(ListOfOctets{1}),176)},
Octeto3 = Número.AlTexto(Valor.DesdeTexto(ListaDeOctetos{2}), «x»),
Resultado = Texto.Combinar({Octeto2, Octeto3})
en
Resultado
en
Número IP2
————————————-
Por favor, hágamelo saber si es correcto pensar
forajido
En respuesta a forajido
Después de la prueba, necesito verificar el valor de octet2.
Si el valor de octet2 es negativo, entonces el resultado debe ser «desconocido»
No estoy familiarizado con if’s ….
v-kelly-msft
En respuesta a forajido
Hola @desperado,
Modifique su código M de la siguiente manera:
let
IP2Number = (
IP as text
) => let
currentIP = IP,
Alfa = {"0".."9"} & {"A".."Z"},
ListOfOctets = Text.Split(currentIP, "."),
Octet2 = try Alfa{Value.Subtract(Value.FromText(ListOfOctets{1}),176)} otherwise "unknown",
Octet3 = Number.ToText(Value.FromText(ListOfOctets{2}), "x"),
Result = Text.Combine({Octet2, Octet3})
in
Result
in
IP2Number
Y tu verás:
Para el archivo .pbix relacionado, consulte el archivo adjunto.
Atentamente,
Kelly
¿Respondí tu pregunta? ¡Marca mi publicación como una solución!
forajido
En respuesta a v-kelly-msft
Hola @v-kelly-msft
Gracias por la respuesta.
Funciona para octet2, pero quiero lo siguiente:
Si octet2 es negativo, omita octet3 y establezca el resultado en «desconocido»
Entonces, para IP 172.172.180.4, el resultado debería ser «desconocido» y no «desconocidob4»
De nuevo, gracias por la respuesta.
Octet2 = try Alfa{Value.Subtract(Value.FromText(ListOfOctets{1}),176)} otherwise "unknown",
Octet3 = Number.ToText(Value.FromText(ListOfOctets{2}), "x"),
Result = Text.Combine({Octet2, Octet3})
in
Result
v-kelly-msft
En respuesta a forajido
Hola @desperado,
Luego use el siguiente código:
let
IP2Number = (
IP as text
) => let
currentIP = IP,
Alfa = {"0".."9"} & {"A".."Z"},
ListOfOctets = Text.Split(currentIP, "."),
Octet2 = Alfa{Value.Subtract(Value.FromText(ListOfOctets{1}),176)},
Octet3 = Number.ToText(Value.FromText(ListOfOctets{2}), "x"),
Result = try Text.Combine({Octet2, Octet3}) otherwise "unknown"
in
Result
in
IP2Number
Y tu verás:
Para el archivo .pbix actualizado, consulte el archivo adjunto.
Atentamente,
Kelly
¿Respondí tu pregunta? ¡Marca mi publicación como una solución!