Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 69930 Skopiuj do schowka PQ wartość dla nie pustych komórek
Autor Wiadomość
Pawel07 
Forumowicz


Wersja: Win Office 2016
Posty: 10
Wysłany: 24-01-2021, 23:48   PQ wartość dla nie pustych komórek

Witam,

Może ktoś podpowiedzieć jak to w power query formułą zapisać ?

Dla każdej nie pustej komórki w tabeli zwraca "y" + sumuje ile nie pustych komórek w tabeli tyle

"y".

Załącznik

P.

pq.xlsx
Pobierz Plik ściągnięto 5 raz(y) 11.39 KB

ID posta: 398955 Skopiuj do schowka
 
 
xfish 
Excel Expert



Wersja: Win Office 2013
Pomógł: 447 razy
Posty: 1388
Wysłany: 25-01-2021, 08:09   

Coś takiego
Kod:
= Table.AddColumn(Źródło, "Ile niepustych", each Text.Repeat("y",List.NonNullCount(Record.FieldValues(_))))


Załącznik

Kopia pq.xlsx
Pobierz Plik ściągnięto 2 raz(y) 18.97 KB

_________________
Pozdrawiam
xFish
ID posta: 398967 Skopiuj do schowka
 
 
Pawel07 
Forumowicz


Wersja: Win Office 2016
Posty: 10
Wysłany: 25-01-2021, 11:59   

Dzięki wielkie,

Jak zawsze życie mnoży nowe problemy, buduje arkusz, który bedzie zasilał w dane sklep www

i potrzebuje jeszcze dodatkowej kolumny, która zwróci dla okreslonej (nie pustej) kolumny

wartość Y a dla innej N


załącznik

P.

pq.xlsx
Pobierz Plik ściągnięto 14 raz(y) 21.53 KB

ID posta: 398976 Skopiuj do schowka
 
 
xfish 
Excel Expert



Wersja: Win Office 2013
Pomógł: 447 razy
Posty: 1388
Wysłany: 25-01-2021, 13:06   

Taki mało elegancki kod:
Kod:
 #"Dodano kolumnę niestandardową" = Table.AddColumn(#"Zmieniono typ", "Ile niepustych", each Text.Repeat("y",List.NonNullCount({[kolumna1]}))&Text.Repeat("n",List.NonNullCount({[kolumna2]}))&Text.Repeat("y",List.NonNullCount({[kolumna3]}))&Text.Repeat("n",List.NonNullCount({[kolumna4]}))),
_________________
Pozdrawiam
xFish
ID posta: 398982 Skopiuj do schowka
 
 
Pawel07 
Forumowicz


Wersja: Win Office 2016
Posty: 10
Wysłany: 25-01-2021, 18:38   

Dziekuje bardzo

A kod jest skuteczny i elegancki

;-)

P.
ID posta: 399007 Skopiuj do schowka
 
 
DwaNiedźwiedzie 
Excel Expert



Wersja: Win Office 2016
Pomógł: 279 razy
Posty: 686
Wysłany: 25-01-2021, 19:34   

W ramach rozrywki dla szarych komórek podrzucam wersję zaawansowaną, która działa niezależnie od liczby kolumn i ich nazw (o ile intencją było naprzemienne zastępowanie tekstów w kolejnych kolumnach):
Kod:
let
    Źródło = Excel.CurrentWorkbook(){[Name="Tabela15"]}[Content],
    zamień = (wartosc, tekst) => if wartosc <> null then tekst else null,
    kolumny = List.Transform(List.Alternate(Table.ColumnNames(Źródło), 1, 1), each {_, (x) => zamień(x, "n")}),
    #"Zamieniono wartość" = Table.TransformColumns(Źródło, kolumny, each zamień(_, "y")),
    #"Dodano kolumnę niestandardową" = Table.AddColumn(#"Zamieniono wartość", "wynik", each Text.Combine(Record.FieldValues(_)))
in
    #"Dodano kolumnę niestandardową"

A tu wersja prawie całkowicie wyklikana z menu (tylko scalanie i grupowanie wymagało ingerencji w formuły) :)
Kod:
let
    Źródło = Excel.CurrentWorkbook(){[Name="Tabela15"]}[Content],
    #"Nagłówki o obniżonym poziomie" = Table.DemoteHeaders(Źródło),
    #"Dodano indeks" = Table.AddIndexColumn(#"Nagłówki o obniżonym poziomie", "Indeks", 0, 1),
    #"Anulowano przestawienie innych kolumn" = Table.UnpivotOtherColumns(#"Dodano indeks", {"Indeks"}, "Atrybut", "Wartość"),
    #"Zamieniono wartość" = Table.ReplaceValue(#"Anulowano przestawienie innych kolumn","Column","",Replacer.ReplaceText,{"Atrybut"}),
    #"Zmieniono typ" = Table.TransformColumnTypes(#"Zamieniono wartość",{{"Atrybut", Int64.Type}}),
    #"Wstawiono modulo" = Table.AddColumn(#"Zmieniono typ", "Modulo", each Number.Mod([Atrybut], 2), type text),
    #"Dodano kolumnę warunkową" = Table.AddColumn(#"Wstawiono modulo", "wynik", each if [Modulo] = 1 then "y" else "n", type text),
    #"Pogrupowano wiersze" = Table.Group(#"Dodano kolumnę warunkową", {"Indeks"}, {{"lista", each Text.Combine(_[wynik]), type text}}),
    #"Scalone zapytania" = Table.NestedJoin(#"Dodano indeks",{"Indeks"},#"Pogrupowano wiersze",{"Indeks"},"Pogrupowano wiersze",JoinKind.LeftOuter),
    #"Rozwinięty element Pogrupowano wiersze" = Table.ExpandTableColumn(#"Scalone zapytania", "Pogrupowano wiersze", {"lista"}, {"lista"}),
    #"Usunięto kolumny" = Table.RemoveColumns(#"Rozwinięty element Pogrupowano wiersze",{"Indeks"}),
    #"Nagłówki o podwyższonym poziomie" = Table.PromoteHeaders(#"Usunięto kolumny", [PromoteAllScalars=true])
in
    #"Nagłówki o podwyższonym poziomie"
ID posta: 399009 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe