ID tematu: 69930
 |
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
|
|
|
 |
|
|
|
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
|
|
|
 |
|
|
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
|
|
|
 |
|
|
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
|
|
|
 |
|
|
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
|
|
|
 |
|
|
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
|
|
|
 |
|
|
|
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
|
 |
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
|