Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!

Reply
Syndicate_Admin
Administrator
Administrator

¿Cómo calculo valores proporcionales en función de múltiples variables? - Datos de precipitaciones

Estoy intentando crear datos de lluvia virtuales para múltiples "sitios" utilizando combinaciones proporcionales variables de tres pluviómetros.

Mis datos se guardan en algunas tablas / listas en los siguientes formatos:

Lista de sitios:

OllieSvT_1-1661270197764.png

Tabla de distribución de estaciones (aún no procesada, sin tipos de datos seleccionados, etc.):

OllieSvT_3-1661270402729.png

Datos diarios de lluvia y otoño (tabla resumida a partir de datos por hora):

OllieSvT_0-1661270069609.png


Me gustaría definir los valores de lluvia en el formato:

Precipitaciones en el sitio z = (precipitaciones en el sitio z calibre 1 * proporción del medidor 1 para el sitio z) + (precipitaciones en el sitio z calibre 2 * proporción del medidor 2 para el sitio z) + (precipitaciones en el sitio z calibre 3 * proporción del medidor 3 para el sitio z)

Me gustaría tener valores diarios para trazar de modo que, dependiendo de una segmentación de sitios (de selección única), se grafiquen los "datos de lluvia virtual" apropiados.

El modelo de datos actual es pequeño 1 año de datos diarios, ~ 40 sitios y 16 pluviómetros. Si puedo encontrar una solución limpia, buscaré expandir esto a más de 150 sitios y más de 10 años de datos de lluvia (potencialmente a una resolución por hora).

Preferiría crear esto usando DAX, pero potencialmente podría usar una solución de Power Query que cree un nuevo conjunto de datos de lluvia que pueda vincular directamente a la lista de 'sitios'. Para una solución DAX, no puedo averiguar cómo relacionar la lista de sitios con las asignaciones de indicadores (¿necesito despivotar la segunda tabla a 3 columnas, ID de sitio, ID de medidor, proporción? ¿Entonces se te ocurre algún cálculo que haga la ecuación anterior?

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@OllieSvT,

Comenzaría transformando la tabla de distribución de la estación para que esté en un formato utilizable. Copie los pasos que comienzan con UnpivotColumns en la consulta.

let
  Source = Table.FromRows(
    Json.Document(
      Binary.Decompress(
        Binary.FromText(
          "Xc+9CsIwFAXgV5FMCqU0/2ZUR8GlgkPpENs7SK9tqRbx7U1uqxSXe0JIvpwUBduNNcKbJYxLbrOQRwCEkDmPQ4XhXOYkJbcupJQyHkyNFpRS0XaqtTGsTAq2h7r1iDManRO8+m54rta5x67fRFmEMaFaLx4hSNEyVTozcYtM9FWDvoFZFf9VF8ZckDoKYamjpRtEHfy9v3Xt6gzD4KsJzEz86QUQ4XHtxqElV/46bt3k2y+sjebUUaotweUH",
          BinaryEncoding.Base64
        ),
        Compression.Deflate
      )
    ),
    let
      _t = ((type nullable text) meta [Serialized.Text = true])
    in
      type table [
        Source_Name = _t,
        SAP_SITE_ID = _t,
        First_Station_Name = _t,
        Second_Station_Name = _t,
        Third_Station_Name = _t,
        First_Station_Number = _t,
        Second_Station_Number = _t,
        Third_Station_Number = _t,
        First_State_Proportion = _t,
        Second_State_Proportion = _t,
        Third_State_Proportion = _t
      ]
  ),
  ChangeType = Table.TransformColumnTypes(
    Source,
    {
      {"Source_Name", type text},
      {"SAP_SITE_ID", Int64.Type},
      {"First_Station_Number", Int64.Type},
      {"Second_Station_Number", Int64.Type},
      {"Third_Station_Number", Int64.Type},
      {"First_State_Proportion", type number},
      {"Second_State_Proportion", type number},
      {"Third_State_Proportion", type number}
    }
  ),
  UnpivotColumns = Table.UnpivotOtherColumns(
    ChangeType,
    {"Source_Name", "SAP_SITE_ID"},
    "Attribute",
    "Value"
  ),
  SplitColumn = Table.SplitColumn(
    UnpivotColumns,
    "Attribute",
    Splitter.SplitTextByEachDelimiter({"_"}, QuoteStyle.Csv, false),
    {"Attribute.1", "Attribute.2"}
  ),
  PivotColumns = Table.Pivot(
    SplitColumn,
    List.Distinct(SplitColumn[Attribute.2]),
    "Attribute.2",
    "Value"
  ),
  RemoveColumn = Table.RemoveColumns(PivotColumns, {"Attribute.1"}),
  FilterNull = Table.SelectRows(RemoveColumn, each ([Station_Number] <> null)),
  ChangeType2 = Table.TransformColumnTypes(
    FilterNull,
    {{"Station_Name", type text}, {"Station_Number", type text}, {"State_Proportion", type number}}
  )
in
  ChangeType2

DataInsights_0-1662408134345.png

Deberá proporcionar datos de muestra para la tabla Lluvia diaria (no una captura de pantalla).

Syndicate_Admin
Administrator
Administrator

Hi, @OllieSvT

No está completamente seguro de cuál es su pregunta, ¿puede elaborar un poco más lo que está tratando de hacer?

Los datos de muestra y los resultados esperados ayudarían enormemente.

Saludos
Equipo de soporte de la comunidad _ Eason

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

Vote for your favorite vizzies from the Power BI World Championship submissions!

Sticker Challenge 2026 Carousel

Join our Community Sticker Challenge 2026

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

January Power BI Update Carousel

Power BI Monthly Update - January 2026

Check out the January 2026 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Kudoed Authors