Kategorie szkoleń | Egzaminy | Kontakt
  • 3
  • 3
  • 46

Witam.

Czy istnieje w Power Query możliwość sprawdzenia warunkowego wierszy?

W strukturze mojej bazy dokumentów, prawidłowy układ wierszy powinien naprzemiennie zawierać null oraz tekst. Chciałbym znaleźć dokumenty, gdzie w dwóch kolejnych wierszach znajduje się tekst. 

Proszę o pomoc.

 

Michał_Leonarczyk
  • Zapytał
  • @ Michał_Leonarczyk | 13.01.2017
    • 2
    • 0
    • 5
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedzi (3)

  • 0

Witam Serdecznie.

Próbował Pan formatowaniem warunkowym?

Pozdrawiam.
Łukasz.

  • Odpowiedział
  • @ | 26.01.2017
  • TRENER ALTKOM AKADEMII
Komentarze
Chciałem, ale niestety w tym przypadku nie potrafię zastosować formatowania warunkowego. Nie wiem jak zapisać formułę badającą zawartość w poszczególnych wierszach.
Skomentował : @ Michał_Leonarczyk ,26.01.2017
  • 2
  • 0
  • 5
  • 0

Jeśli chodzi o formułę do formatowania warunkowego to:

=LUB(ORAZ(E2<>"null";E3<>"null";D2=D3);ORAZ(E2<>"null";E1<>"null";D2=D1))

Patrz załącznik.

Załączniki

  • xlsx

    sprawdzenie formatowanie war.x... ( 9K )
  • Odpowiedział
  • @ | 27.01.2017
  • TRENER ALTKOM AKADEMII
  • 5

Natomiast jeżeli chodzi o zrobienie tego w Power Query.

Robimy tabelę:

 

 

Dodajemy ją do Power Query (tu w użyciu wersja Excela 2016):

 

 

Usuwamy krok:

 

 

Wtedy nulle będą tekstem, a nie wartością:

 

 

Dodajemy kolumnę indeksu (dzięki niej będziemy mogli operować na wierszach):

 

 

Zmieniamy nazwę wykonanego kroku:

 

 

Prawo klik na nazwie kroku i zmień nazwę:

 

 

Będziemy się do tego kroku odwoływać, więc jego nazwa niech będzie krótka:

 

Dodajemy kolumnę niestandardową:

 

 

Dodajemy w niej takę formułę:

if AddInd[kolumna1]{[Indeks]}=AddInd[kolumna1]{[Indeks]-1} and AddInd[kolumna2]{[Indeks]}<>"null" and AddInd[kolumna2]{[Indeks]-1}<>"null" then 1 else 0

jeżeli utworzona w kroku AddInd w kolumnie1 dla aktualnego wiersza (tam jest nawias klamrowy) jest równa wierszowi wcześniejszemu ([kolumna1]{[Indeks]-1}) i w aktualnym wierszu w kolumnie2 nie ma null-a (tekstowej wartości) i w kolumnie2, ale we wcześniejszym wierszu tez nie ma nulla to wstaw 1 w przeciwnym razie wstaw 0.

Efekt działania:

 

 

Błąd nas nie interesuje ponieważ jest to ostatnia wartość, jakby nawet był obecny, to w przedostatnim wierszu dowiemy się o tym, że ta wartość nas interesuje. Ale żeby było ładnie dodamy obsługę błędów.

= Table.AddColumn(AddInd, "Niestandardowe", each try  if AddInd[kolumna1]{[Indeks]}=AddInd[kolumna1]{[Indeks]-1} and AddInd[kolumna2]{[Indeks]}<>"null" and AddInd[kolumna2]{[Indeks]-1}<>"null" then 1 else 0 otherwise 0)

Boldem zaznaczona poprawka.

Efekt:

 

 

Filtrujemy kolumnę po 1:

 

 

Usuwamy niepotrzebne kolumny.

Zaznaczamy kolumnę "kolumna1" i usuwamy pozostałe:

 

 

Zamknij i załaduj do arkusza:

 

 

Wskazujemy gdzie:

 

 

Gotowe:

 

 

Patrz załącznik.

P.S Nie wiem, czy nie prościej byłoby to napisać w VBA?

Załączniki

  • xlsx

    sprawdzenie powerquery.xlsx ( 16K )
  • Odpowiedział
  • @ | 27.01.2017
  • TRENER ALTKOM AKADEMII
Komentarze
Dokładnie o takie rozwiązanie w Power Query mi chodziło, świetnie się sprawdza. Dziękuję bardzo Panie Krzysztofie.
Skomentował : @ Michał_Leonarczyk ,27.01.2017
  • 2
  • 0
  • 5