Power Query 기본 기술 : 조건 열 추가 및 필다운 ~ 다른 행의 데이터를 연결

7173 단어 ExcelPowerQuery
이 이야기를

htps : // 라고 해서 r. m/o lt_yt/s 타츠 s/1126409785916571649
Yt-olt @olt_yt
이런 느낌에 옆에 조건열로 빼내고, 아래에 필하는 것은 나적으로 잘 하고, 하고 싶은 사람이 많은 움직임이 아닐까~#PowerQuery
오후 5:53 · 2019년 5월 9일 · Twitter Web App

htps //w w. 아마존. 이. jp/dp/B07WVZXVLY
가장 쉬운 Excel 피벗 테이블의 교본 챕터 7 레슨 37과 동등한 내용입니다

Power Query 단계 이름 역방향 (미완성 버전)
htps : // 이 m / lt_yt / ms / 679605009b6, 180b9c

이런 식으로
히라가나 이모티콘을 하위 줄에 넣고 싶을 때
표의 제목을 표의 각 행에 갖고 싶습니다.
그렇다면 간단한 설명을 할 것입니다.

이것을 이런 느낌을 목표


원본 데이터





이니셜



표에 들어있는 히라가나의 머리 글자
정렬에 사용하기 위해 각 행에 배포하는 경우를 생각합니다.

let
    X0 = "7VS9bgMhDH4X5gz82UBfpdcB7o4p6nZT1XcvhlzhaKR0IW2kLJZtwDb29/n1g00bSGEEe3nfzufTxZRHUx1NfTThaGIxP09N7KQpbvW0WatnNirL8B8ER3LGLBXJxdCf0CbphW1/Vh7EfAlZUwdpTqZ3oJQnL6/H+vJumevrqFhTZ9IkhNpD3F3IrnV8WK9LfBwc346MD9rkNps0SRDRkw6Q82Y/5Pb7UCdfBrLyaXPg5bQhGN7NnDS6hGuCRIwLeTzv5y8yYqScf0z+Vro99tXiDftPbLHuyfc7890N5qMfHD8Mjj8Oiw31ddjRj6tIugnOkM5tJmzsN4bjdFUtoUNNoTtwqb9Jn8467KAXOZHDDjU1N/tl3RjKsvqrimvuWxWn7i6Pu1VsfO7FO+/FOHavODk4vnoYrLx9AQ==",
    //テーブル変換部
    X1 = Binary.FromText(X0),
    X2 =Binary.Decompress(X1,Compression.Deflate),
    X3 =Table.FromRecords(Json.Document(X2,932)),

    //エラー処理
    フィルターされた行 = Table.SelectRows(X3, each ([列1] <> null)),

    //コア部
    //他の行に移動したいデータを新列に抜き出す
    //抜き出す物以外をnullにするのが重要
    追加された条件列 = Table.AddColumn(フィルターされた行, "条件列", each if Text.Contains([列1], "行") then "頭文字" else if [列2] = null then [列1] else null),

    //フィルを使って移動
    下方向へコピー済み = Table.FillDown(追加された条件列,{"条件列"}),

    //不要部削除他
    フィルターされた行1 = Table.SelectRows(下方向へコピー済み, each ([列2] <> null)),
    昇格されたヘッダー数 = Table.PromoteHeaders(フィルターされた行1, [PromoteAllScalars=true]),
    変更された型 = Table.TransformColumnTypes(昇格されたヘッダー数,{{"ステップ表記", type text}, {"タブ", type text}, {"大区分", type text}, {"ボタン", type text}, {"▼", type text}, {"▶", type text}, {"頭文字", type text}}),
    並べ替えられた列 = Table.ReorderColumns(変更された型,{"頭文字", "ステップ表記", "タブ", "大区分", "ボタン", "▼", "▶"}),
    フィルターされた行2 = Table.SelectRows(並べ替えられた列, each ([頭文字] <> "頭文字"))
in
    フィルターされた行2

처리의 흐름을 겨우 그림으로 한 물건이 아래의 물건이 됩니다
조건 열 (적색 선)의 조작으로 열 1의 필요한 내용만 추출
빼낸 물건을 필의 힘으로 아래 방향으로 배포한다(파란 선)
그런 조작이됩니다.


행 이름



이번에는 표의 제목을 각 행에 가져 가려고 생각합니다.
월별로 나뉘어진 표, 담당별로 나뉘어진 표
등으로 제목을 각 줄로 나누는 것은 자주 사용합니다.

let
    X0 = "7VS9bgMhDH4X5gz82UBfpdcB7o4p6nZT1XcvhlzhaKR0IW2kLJZtwDb29/n1g00bSGEEe3nfzufTxZRHUx1NfTThaGIxP09N7KQpbvW0WatnNirL8B8ER3LGLBXJxdCf0CbphW1/Vh7EfAlZUwdpTqZ3oJQnL6/H+vJumevrqFhTZ9IkhNpD3F3IrnV8WK9LfBwc346MD9rkNps0SRDRkw6Q82Y/5Pb7UCdfBrLyaXPg5bQhGN7NnDS6hGuCRIwLeTzv5y8yYqScf0z+Vro99tXiDftPbLHuyfc7890N5qMfHD8Mjj8Oiw31ddjRj6tIugnOkM5tJmzsN4bjdFUtoUNNoTtwqb9Jn8467KAXOZHDDjU1N/tl3RjKsvqrimvuWxWn7i6Pu1VsfO7FO+/FOHavODk4vnoYrLx9AQ==",
    //テーブル変換部
    X1 = Binary.FromText(X0),
    X2 =Binary.Decompress(X1,Compression.Deflate),
    X3 =Table.FromRecords(Json.Document(X2,932)),

    //エラー処理
    フィルターされた行 = Table.SelectRows(X3, each ([列1] <> null)),

    //コア部
    //他の行に移動したいデータを新列に抜き出す
    //抜き出す物以外をnullにするのが重要
    追加された条件列 = Table.AddColumn(フィルターされた行, "条件列", each if Text.Contains([列1], "行") then [列1] else null),

    //フィルを使って移動
    下方向へコピー済み = Table.FillDown(追加された条件列,{"条件列"}),

    //不要部削除他
    フィルターされた行1 = Table.SelectRows(下方向へコピー済み, each ([列2] <> null)),
    追加された条件列1 = Table.AddColumn(フィルターされた行1, "カスタム", each if [列1] = "ステップ表記" then "行名" else [条件列]),
    削除された列 = Table.RemoveColumns(追加された条件列1,{"条件列"}),
    昇格されたヘッダー数 = Table.PromoteHeaders(削除された列, [PromoteAllScalars=true]),
    変更された型 = Table.TransformColumnTypes(昇格されたヘッダー数,{{"ステップ表記", type text}, {"タブ", type text}, {"大区分", type text}, {"ボタン", type text}, {"▼", type text}, {"▶", type text}, {"行名", type text}}),
    フィルターされた行2 = Table.SelectRows(変更された型, each ([ステップ表記] <> "ステップ表記")),
    並べ替えられた列 = Table.ReorderColumns(フィルターされた行2,{"行名", "ステップ表記", "タブ", "大区分", "ボタン", "▼", "▶"})
in
    並べ替えられた列


주의점



이렇게

헤더로서 사용하는 행에 「야행」 「등행」이라고 하는 변화하는 문자가 들어간 채
헤더로 격상해 버리면 열명의 변화에 ​​의한 에러가 다발합니다
그래서 이번처럼
・원의 조건열시에 헤더용의 문자를 생성한다
・2단째의 조건열로 헤더열이 다른 문자로 옮겨진다
같은 방법으로 피하는 것이 좋습니다.

폴더를 읽을 때 파일 이름이 열 이름으로 들어가 오류가 발생한다는 것은 자주 발생합니다.
열 이름과 같이 조건 열에서 헤더 열만 다시 쓰는 것이 좋습니다.

조건 열




실은 이 조건열, 간략화하기 위해서 이런 내용입니다만
열 1의 표 안에 「행」의 문자가 들어 있으면 전부 「두문자」가 되기 때문에
'삭제된 빈 줄' 등이 들어 있는 '사행'은 엄청난 결과가 됩니다.

이번 경우에는 열 1이 문자수 2가 되는 것은 목적의 곳만이므로
열 추가⇒추출⇒길이
하지만 시간 길이를 내고 거기를 씨앗으로 만든다는 작업 열을 늘리는 방법 등이 있습니다

페셜 선크스



테이블을 바이너리(JSON)화하거나 테이블로 되돌리거나
htps : // 이 m/타누키_p 쪽에 x/있어 ms/5f9991아 c2712f91f5f이다

좋은 웹페이지 즐겨찾기