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

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

Reply
Syndicate_Admin
Administrator
Administrator

Cómo crear una columna calculada que identifique el censo de fechas y devuelva valores de mes

Hola a todos,

Estoy trabajando en un conjunto de datos que muestra una lista de ID de casos de trabajo y sus respectivas fechas de recepción y cierre (formateadas como MM / YYYY).

Deseo crear una columna personalizada en la que Power BI calculará si el ID está abierto al final de cada mes, lo etiquetará como pendiente con el nombre del mes correspondiente (MMMM YY).

IDENTIFICACIÓNFecha de recepciónFecha de cierreExcepcional
10001/202403/202424 de enero, 24 de febrero
10101/202402/202424 de enero
10203/202403/2024
10304/202405/2024Abr 24
10406/202408/2024Jun 24, Jul 24
10506/202406/2024
10608/202409/202424 de agosto
10710/202412/202424 de octubre, 24 de noviembre
10801/202501/2025
10903/202504/202525 de marzo
11003/202503/2025
11103/2025 25 de marzo
11204/202504/2025
11304/2025 Abr 25
11404/202504/2025
11504/2025 Abr 25

Por ejemplo, el ID 100 se abrió en enero de 2024 y se cerró en marzo de 2024, por lo que al 31/01/2024 y al 29/02/2024 el caso de empleo seguía abierto y pendiente, por lo que la columna "Pendiente" debería mostrar el "24 de enero, 24 de febrero". Los casos de empleo abiertos y cerrados en el mismo mes no tendrán ningún valor en la columna "Pendiente", ya que no habrían estado abiertos al final del mes. Los casos de empleo abiertos pero aún no cerrados seguirán la fecha del censo de fin de mes (es decir, ID 111 estaba abierto en marzo de 2025 pero sigue abierto, por lo que a 31/03/2025 tiene la etiqueta pendiente Mar 25. La misma lógica se aplica a los ID 113 y 115 si permanecen abiertos a 31/04/2025).

¿Alguien puede indicarme la dirección correcta de cómo lograr esta columna personalizada en Power Query (ya que luego necesito dividir esta columna por el delimitador de comas para crear gráficos y objetos visuales)? Gracias de antemano.

1 ACCEPTED SOLUTION

Hola @dcheng029

Por favor, compruebe si esto se adapta a sus necesidades.

Irwan_0-1744771037756.png

crear una nueva columna personalizada en PQ con el siguiente código

= Table.AddColumn(#"Changed Type", "Outstanding PQ", each if [Date Received]=[Date Closed] then "" else if Date.EndOfMonth([Date Received])=Date.EndOfMonth(Date.AddMonths([Date Closed],-1)) then Date.ToText([Date Received],"MMM yy") else Text.Combine({Date.ToText([Date Received],"MMM yy"),Date.ToText(Date.EndOfMonth(Date.AddMonths([Date Closed],-1)),"MMM yy")},", "))

Espero que esto ayude.

Gracias.

View solution in original post

10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

lbendlin_0-1744760676655.png

Outstanding = 
var c =ADDCOLUMNS(CALENDAR([Date Received],COALESCE([Date Closed],TODAY())),"m",FORMAT([Date],"MMM YY"))
return CONCATENATEX(GROUPBY(FILTER(c,FORMAT(COALESCE([Date Closed],TODAY()),"MMM YY")<>[m]),[m]),[m],", ")

Eso es increíble, ¡gracias por los consejos!

Si quisiera dividir la columna Pendiente por el delimitador de comas, ¿cómo lo lograría?

Me gustaría crear un gráfico de columnas con los valores mensuales y el recuento de casos de identificación.

Gracias de nuevo.

Ese es un requisito muy, muy diferente. No se pueden "dividir columnas" en DAX. Eso solo funciona en Power Query.

Proporcione datos de muestra que cubran su problema o pregunta por completo, en un formato utilizable (no como una captura de pantalla).
No incluyas información confidencial. No incluya nada que no esté relacionado con el problema o la pregunta.
Muestre el resultado esperado en función de los datos de muestra que proporcionó.

¿Necesitas ayuda para subir datos? https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-...
¿Quieres respuestas más rápidas? https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447...

Publicación editada para que sea una tabla en lugar de una captura de pantalla; El resultado deseado permanece sin cambios, necesito la columna Pendiente en Power Query para poder dividirla por el delimitador de columna.

Syndicate_Admin
Administrator
Administrator

Hola @dcheng029

Por favor, compruebe si esto se adapta a sus necesidades.

Irwan_0-1744759925291.png

cree una columna calculada con el siguiente DAX.

Outstanding =
IF(
'Table'[Date Received]='Table'[Date Closed],
"",
IF(
EOMONTH('Table'[Date Received],0)=EOMONTH('Table'[Date Closed],-1),
FORMAT('Table'[Date Received],"MMM YY"),
FORMAT('Table'[Date Received],"MMM YY")&", "&FORMAT(EOMONTH('Table'[Date Closed],-1),"MMM YY")
))
Además, no estoy seguro de que ID111 tenga Mar25, pero ID113 e ID115 no tienen valor. Los tres tienen en blanco la fecha de cierre.
Espero que esto ayude.
Gracias.

Gracias por el desglose y el archivo .pbix, se lo agradezco.

Espero dividir la columna Pendiente por el delimitador de columna para poder representar gráficamente los números de mes y casos pendientes juntos; Entiendo que esto solo se puede hacer en Power Query. ¿Tendría algún consejo sobre cómo lograr la misma salida pero en Power Query para que pueda dividir la columna?

Hola @dcheng029

Por favor, compruebe si esto se adapta a sus necesidades.

Irwan_0-1744771037756.png

crear una nueva columna personalizada en PQ con el siguiente código

= Table.AddColumn(#"Changed Type", "Outstanding PQ", each if [Date Received]=[Date Closed] then "" else if Date.EndOfMonth([Date Received])=Date.EndOfMonth(Date.AddMonths([Date Closed],-1)) then Date.ToText([Date Received],"MMM yy") else Text.Combine({Date.ToText([Date Received],"MMM yy"),Date.ToText(Date.EndOfMonth(Date.AddMonths([Date Closed],-1)),"MMM yy")},", "))

Espero que esto ayude.

Gracias.

Hola @Irwan muchas gracias por la rápida ayuda, ¡muy apreciado!

Hola @dcheng029

Encantado de ser una ayuda.

también por favor Acepte como Solución si alguna de estas publicaciones le ayuda para que otros puedan encontrarla fácilmente.

Gracias.

@Irwan,

He aceptado tu respuesta como la solución.

Con solo echar un vistazo a mis datos de nuevo y, por alguna razón, algunos de los valores devueltos son incorrectos (resaltados en amarillo). ¿Tienes alguna idea de por qué?

dcheng029_0-1744777793541.png

Helpful resources

Announcements
March PBI video - carousel

Power BI Monthly Update - March 2025

Check out the March 2025 Power BI update to learn about new features.

March2025 Carousel

Fabric Community Update - March 2025

Find out what's new and trending in the Fabric community.

"); $(".slidesjs-pagination" ).prependTo(".pagination_sec"); $(".slidesjs-pagination" ).append("
"); $(".slidesjs-play.slidesjs-navigation").appendTo(".playpause_sec"); $(".slidesjs-stop.slidesjs-navigation").appendTo(".playpause_sec"); $(".slidesjs-pagination" ).append(""); $(".slidesjs-pagination" ).append(""); } catch(e){ } /* End: This code is added by iTalent as part of iTrack COMPL-455 */ $(".slidesjs-previous.slidesjs-navigation").attr('tabindex', '0'); $(".slidesjs-next.slidesjs-navigation").attr('tabindex', '0'); /* start: This code is added by iTalent as part of iTrack 1859082 */ $('.slidesjs-play.slidesjs-navigation').attr('id','playtitle'); $('.slidesjs-stop.slidesjs-navigation').attr('id','stoptitle'); $('.slidesjs-play.slidesjs-navigation').attr('role','tab'); $('.slidesjs-stop.slidesjs-navigation').attr('role','tab'); $('.slidesjs-play.slidesjs-navigation').attr('aria-describedby','tip1'); $('.slidesjs-stop.slidesjs-navigation').attr('aria-describedby','tip2'); /* End: This code is added by iTalent as part of iTrack 1859082 */ }); $(document).ready(function() { if($("#slides .item").length < 2 ) { /* Fixing Single Slide click issue (commented following code)*/ // $(".item").css("left","0px"); $(".item.slidesjs-slide").attr('style', 'left:0px !important'); $(".slidesjs-stop.slidesjs-navigation").trigger('click'); $(".slidesjs-previous").css("display", "none"); $(".slidesjs-next").css("display", "none"); } var items_length = $(".item.slidesjs-slide").length; $(".slidesjs-pagination-item > button").attr("aria-setsize",items_length); $(".slidesjs-next, .slidesjs-pagination-item button").attr("tabindex","-1"); $(".slidesjs-pagination-item button").attr("role", "tab"); $(".slidesjs-previous").attr("tabindex","-1"); $(".slidesjs-next").attr("aria-hidden","true"); $(".slidesjs-previous").attr("aria-hidden","true"); $(".slidesjs-next").attr("aria-label","Next"); $(".slidesjs-previous").attr("aria-label","Previous"); //$(".slidesjs-stop.slidesjs-navigation").attr("role","button"); //$(".slidesjs-play.slidesjs-navigation").attr("role","button"); $(".slidesjs-pagination").attr("role","tablist").attr("aria-busy","true"); $("li.slidesjs-pagination-item").attr("role","list"); $(".item.slidesjs-slide").attr("tabindex","-1"); $(".item.slidesjs-slide").attr("aria-label","item"); /*$(".slidesjs-stop.slidesjs-navigation").on('click', function() { var itemNumber = parseInt($('.slidesjs-pagination-item > a.active').attr('data-slidesjs-item')); $($('.item.slidesjs-slide')[itemNumber]).find('.c-call-to-action').attr('tabindex', '0'); });*/ $(".slidesjs-stop.slidesjs-navigation, .slidesjs-pagination-item > button").on('click keydown', function() { $.each($('.item.slidesjs-slide'),function(i,el){ $(el).find('.c-call-to-action').attr('tabindex', '-1'); }); var itemNumber = parseInt($('.slidesjs-pagination-item > button.active').attr('data-slidesjs-item')); $($('.item.slidesjs-slide')[itemNumber]).find('.c-call-to-action').attr('tabindex', '0'); }); $(".slidesjs-play.slidesjs-navigation").on('click', function() { $.each($('.item.slidesjs-slide'),function(i,el){ $(el).find('.c-call-to-action').attr('tabindex', '-1'); }); }); $(".slidesjs-pagination-item button").keyup(function(e){ var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); $(".slidesjs-stop.slidesjs-navigation").trigger('click').blur(); $("button.active").focus(); } }); $(".slidesjs-play").on("click",function (event) { if (event.handleObj.type === "click") { $(".slidesjs-stop").focus(); } else if(event.handleObj.type === "keydown"){ if (event.which === 13 && $(event.target).hasClass("slidesjs-play")) { $(".slidesjs-stop").focus(); } } }); $(".slidesjs-stop").on("click",function (event) { if (event.handleObj.type === "click") { $(".slidesjs-play").focus(); } else if(event.handleObj.type === "keydown"){ if (event.which === 13 && $(event.target).hasClass("slidesjs-stop")) { $(".slidesjs-play").focus(); } } }); $(".slidesjs-pagination-item").keydown(function(e){ switch (e.which){ case 37: //left arrow key $(".slidesjs-previous.slidesjs-navigation").trigger('click'); e.preventDefault(); break; case 39: //right arrow key $(".slidesjs-next.slidesjs-navigation").trigger('click'); e.preventDefault(); break; default: return; } $(".slidesjs-pagination-item button.active").focus(); }); }); // Start This code is added by iTalent as part of iTrack 1859082 $(document).ready(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); $("#tip2").attr("aria-hidden","true").addClass("hidden"); $(".slidesjs-stop.slidesjs-navigation, .slidesjs-play.slidesjs-navigation").attr('title', ''); $("a#playtitle").focus(function(){ $("#tip1").attr("aria-hidden","false").removeClass("hidden"); }); $("a#playtitle").mouseover(function(){ $("#tip1").attr("aria-hidden","false").removeClass("hidden"); }); $("a#playtitle").blur(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); }); $("a#playtitle").mouseleave(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); }); $("a#play").keydown(function(ev){ if (ev.which ==27) { $("#tip1").attr("aria-hidden","true").addClass("hidden"); ev.preventDefault(); return false; } }); $("a#stoptitle").focus(function(){ $("#tip2").attr("aria-hidden","false").removeClass("hidden"); }); $("a#stoptitle").mouseover(function(){ $("#tip2").attr("aria-hidden","false").removeClass("hidden"); }); $("a#stoptitle").blur(function(){ $("#tip2").attr("aria-hidden","true").addClass("hidden"); }); $("a#stoptitle").mouseleave(function(){ $("#tip2").attr("aria-hidden","true").addClass("hidden"); }); $("a#stoptitle").keydown(function(ev){ if (ev.which ==27) { $("#tip2").attr("aria-hidden","true").addClass("hidden"); ev.preventDefault(); return false; } }); }); // End This code is added by iTalent as part of iTrack 1859082
Top Kudoed Authors