Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
Taro_Murata
Employee
Employee

厚労省H30DPC調査その3(疾患別手術別集計の全ファイルを5分で取り込むには?)

H30のDPC調査結果の「(8)疾患別手術別集計」(MDC別)は疾患別、手術有無別のベンチマークで利用される方は多いかと思います。
ただ、エクセルファイルがMDC毎にあり、また、データの公開形式がBIツールですぐに使える形式になっていないため、変換にご苦労されているのではないでしょうか。

例えば、ヘッダー部分が多段になっていたり、DPC6桁の下で件数と在院日数が交互に現れたり、手術分類のコードの中に"97(輸血以外の再掲)"が含まれていたり、手術分類のコードの出現の数がDPC6桁コード毎に変わったりと複雑です。

image.png

これを下図のような縦持ちの形式に変更したい場合はどうすればよいでしょうか。

QlikViewのファイルウィザードを利用するとスクリプトがわからない方(私もそうですが。。)でも結構簡単に変換ができます。それをQlik Senseのデータロードエディタにコピペするとほぼそのまま利用できますので、ここではファイルウィザードの使い方をご紹介して、最後にQlik Senseで利用するにはどうするかを取り上げます。参考になるスクリプトを添付していますので、ご利用されてみてください。

なお、MDC01の「件数」でスクリプトを1つ作っておくと、あとはコピペを繰り返して、一部編集を行うだけで、MDC18まで、また在院日数も簡単に取り込めます。コピペの要領がわかれば、5分くらいで「(8)疾患別手術別集計」のすべてのファイルを取り込みできるのではないでしょうか。

image.png

【QlikViewファイルウィザードを利用したデータの変換】

まず、今回利用するデータは「(8)疾患別手術別集計_MDC01」のエクセルファイルです。
QlikViewを起動し、ファイルを新規作成し、ロードスクリプトの編集ボタンを押します。

image.png

ファイルデータの[テーブルファイル]ボタンを押し、参照するデータを選択します。

image.png

[次へ]を押すと、下の画面となりますので、[変換オプションを有効にする]を押します。

image.png

上のタブに[不要なデータ][セルの置換え][列][改ページ][回転]の5つの変換オプションがあることがわかります。ここでは、[不要なデータ][セルの置換え][回転]の3つを利用します。

image.png

まず、[不要なデータ]を利用して、必要ないデータを削除します。1行目と2行目の「DPC6桁コード」と「名称」は同じ意味ですので、「名称」を削除します(別途、電子点数表のコードと紐づけ必要)。次に、「通番」と「施設名」も「告示番号」があるため必要ありません。削除します。

行と列を選択すると色が反転しますので、その後、[選択分を削除]を押して、必要ないデータを削除します。

image.png

選択した部分が削除されました。

image.png

[回転]タブを押して、[行列を入れ替え]を押して、行列(横縦)を入れ替えます。

image.png

行列が入れ替わりました。1列目、2列目に空白セルがあり、値が入っていないとなにを表すかわからないため、空白のセルを埋めます。[セルの置換え]タブを押し、[セルの置換え]ボタンを押します。

image.png

 

ウィザードが表示されるため、[セルの条件]ボタンを押します。

image.png

値なしのセルを埋めるため、OKボタンを押します。

image.png

前のウィザードに戻るのでOKボタンを押すと、1行目にあった空白にDPC6桁コードが追加されました。同じ要領で、2行目の空白も埋めます。

image.png

image.png

次に、2列目には「件数」「在院日数」が混じっており、3列目には「97(輸血以外の再掲)」が入っていますので、必要なデータは残し、必要ないデータは削除します。

image.png

下図の①で条件指定をします。2列目の「在院日数」を削除したいため、2列目 次の値に等しい 在院日数とします。②で[追加]ボタンを押すと、条件式が自動的に追加されます。

image.png

在院日数が削除されました。同じ要領で「97(輸血以外の再掲)」も削除します。

image.png

ウィザードでの選択内容は以下のようになります。

image.png

OKを押すと削除されました。2列目の「件数」も必要ないため、2列目を選び[選択分を削除]を押して削除します。

image.png

不必要な項目を削除し、必要な値は補完できたため、かなりすっきりした表となりました。
ここまでくると、あとはクロステーブルの変換(ピボットテーブルの横持ちを縦持ちに変換)となります。

image.png

[次へ]を押し、画面が切り替わると、列見出しが「なし」になっています。「先頭行」に変更すると、先頭行が見出しとして選択されます。

image.png

①で一部の1列目の見出しを「DPC6桁」、2列目の見出しを「手術有無等」と変更します。その後、②の[クロステーブル]を押します。

image.png

クロステーブルのウィザードが立ち上がります。2行目までは固定し、3行目からの横持ちを縦持ちに変換したいです。下図のように、2 告示番号 件数を入力し、OKを押します。

image.png

変換の結果がビューとして表示されます。

image.png

[次へ]を押すと、スクリプトが自動で記述されます。

image.png

告示番号が4000件以上表示されますが、それらを端折り(---の部分)、構造のみを記載したのが以下のスクリプトです。
これまでに行った変換等の内容が記述されています。MDC01の「件数」でスクリプトを作っておくことで、MDC18まで、また、在院日数についても同じ処理を行うことが可能です。その際は、これまでの変換の手順を踏むことなく、スクリプトをコピペして一部を修正することで簡単に再利用ができます。

image.png

※F1はtext(F1)としたほうがよいかもしれません。

また、このスクリプトをQlik Senseで利用したい場合、参照するファイルのパスの記述方法が異なりますのでご注意ください。添付ファイルには参照先の変更方法も記載しておりますが、以下の記事もご参照ください。

Qlik Senseの標準モードとレガシーモード
https://www.qlikspace.net/qlik-sense%e3%81%ae%e6%a8%99%e6%ba%96%e3%83%a2%e3%83%bc%e3%83%89%e3%81%a8%...

 

 

0 Replies