【PowerQuery】PowerQueryで「ファイルのデータが壊れています」となってデータを更新できない

今日2時間もとられたので備忘録。

秋ごろに覚えたてのPowerQueryで作った帳票を久しぶりにあけて更新しようとしたところ、
「ファイルのデータが壊れています」と表示されデータが全く更新されず。。。
作ったときはうまくいったのに!なぜ!!

f:id:twixoreo:20210119201451p:plain

f:id:twixoreo:20191209000627p:plain

▼状況

・元データのファイルのパスは変わっていない
・作業ファイルのパスも変わっていない
・元データのフォーマットやシート名などは変わっていない
・元データのファイルを閉じてても開いて更新しても更新されないし同じエラーが出る
・データを再度パスで参照してもうんともすんともいわない

なんでや・・。


▼原因

元データのファイルにパスワードをかけていたからでした。
作った当初はパスワードを設定していなかったのでうまくいったのですが、
業務上、パスワードを設定しないといけないため作業後にパスワードをかけていたのでした。
「ファイルのデータが壊れています」のエラー文言がかなり紛らわしい。
「元データにパスワードがかかっているため読み込めません」にしてくれ!!


▼解決策

調べてみましたが、いまのところ仕様なので回避策はなさそう。
下記はPowerBIの回答例になりますが、世界のあちこちで困っている人がいるみたい。

元のファイルのPWを外し⇒作業ファイルで更新かけ⇒また元のファイルにPW設定するみたいなスクリプトをかけたら回避できそうだけどなんかあほらしいな。。

これは要望ですが標準機能で元ファイルのPWいれたら更新できるようにするか、
一度アクセスしたら恒久的にOKみたいな感じにしてほしい。。。

ちなみに元ファイル開きながらだったらうまくいくようなことがネットには書かれているけれど
私の環境では元ファイル開きながらでも更新NGでした。その差分はわかりません。

community.powerbi.com
forum.enterprisedna.co
https://www.myonlinetraininghub.com/excel-forum/power-query/power-query-accessing-password-protected-workbook

2020年振り返り(仕事編)

今日はBTでした。ケータリングのおかず食べまくった代々木から1年か…。
準備がおわらず、案の定発表がグダグダになってしまったのでブログに残そうと思います。
備忘録なのでオチとかもないです。

▼仕事のこと

- どや顔で社内自己啓発講師を担当しました。
昨年度社内で受賞した業務改善ネタについて社内講演をしてほしいとの依頼を受けて、

・OAスキルは馬鹿にできない話
スキルアップの大切さ(ほぼノンプロ研で繰り返し言われている内容)
についておこがましくも語りました。

講演後に「前からファンでした」とか「さっそくOA系の社内研修を申し込みました」などおっしゃってくださった方がいらして感動…。
私のファン…この地球上にいたんか。初めて見た。
社内講師シリーズで一番アンケート評価が高かったとのことでうれしかったな…。貴重な経験でした。


- どや顔でビデオメッセージ収録しました。
↑の社内講演に参加されていたえらい方のオファーを受けて
今度は役員主催の説明会で放映する用のビデオメッセージを収録しました。
残念ながら、説明会はコロナ影響で中止になってしまい
ビデオ放映はお蔵入りとなってしまいましたが、、
妖精さんたちにもっと頑張れっていうメッセージを入れていたんだけどなあ。。くやしい。
またいつの日か社内にメッセージを発信できる機会がありますように。


- 初めてテレワークを行いました。
今では当たり前のテレワークですが、いち早く独自で取り入れ(?)
部署の中でも最速で隠居して仕事していました。
昨年PC購入していなかったら、緊急事態宣言が出るまでずっと出社だったんだろうな、、恐ろしい。
タイミング本当によかった…。

ちなみに在宅初期は
・運動不足(に起因する高血圧・つらい便秘・肩こり・体重増加)
言語障害(もともと話すの下手なのにさらに下手になった)
に苦しみました。
周囲の人たちはさみしいって言ってたけどそれはノンプロ研があったから感じなかった。

それにしても自分のお城(テレワーク環境)を作るの楽しかったなあ。。。(環境構築終了してしまった)
左右分離キーボードを購入したり、モニターの位置を調整したり、、
今は食卓を占領しているので、来年は自分の部屋に移植させたいな。。。


- 社内兼務を始めました。
10月も異動がなく(入社から実質同じ部署)モチベーションダダ下がりだったので、
全く違う事業部の業務効率化のお手伝いを始めました(年度末までの期限あり)。
お金が上乗せでもらえたり、異動につながったり、評価が上がるわけでもないけれど、
新しい人との出会いや刺激でかなりモチベーションが上がっています。
(あと社内で初めてVBAとかプログラミングの話が通じて感動…!!)


仕事の話だけでもこんなに長くなってしまったので、
ノンプロ研編はまたこんどにしよう。。(かけたら書く)

原発性アルドステロン症疑いでの検査入院をしてきた(まだ診断途中)

f:id:twixoreo:20201014205553j:plain

20代で高血圧になっちゃったのでメモ。

きっかけは肩こり

肩こりに長年悩まされていて、
いつもマッサージやストレッチを行ってその場しのぎで対処していました…

が、、マッサージにもコロナで気軽に行かなくなり、
ストレッチポールでも改善せず
肩こりで朝目覚めるくらい悪化してしまいました。

「肩こり 原因」で調べたところ
高血圧も肩こりの原因にあることが判明。。。

会社の健康診断で一回も引っかかったことなかったのですが、
高血圧の家庭なので、念のため家の血圧計で測ったら、、
なんとギリギリアウトくらいの高血圧(上が140下が85前後)。

28歳で高血圧マジか、、、(ショック)
まぁコロナでジムにもいかなくなって
ほとんど運動もしなくなっちゃったしなと思いながら近所の内科へ。。。


高血圧の原因

▼高血圧には2種類ある

よくある遺伝や食生活などが原因の高血圧は
本態性高血圧といって、9割を占めているそうです。

のこりの1割は二次性高血圧(腎臓やホルモン異常が原因)とのこと。
二次性高血圧の一つの原因である原発性アルドステロン症(PA)は治療で治せる高血圧。
若い人で高血圧だと大体こっちが多いらしい。
www.ncvc.go.jp

PAについて

聞きなれない病名ですが、腎臓の上に乗っている副腎から
アルドステロン(血圧を上昇させるホルモン)が過剰分泌されてしまい血圧が高い状態になってしまう病気。
(副腎に腫瘍ができている場合とできていない場合がある)

ちなみにホルモン関係なので肌がかゆいのとか蕁麻疹も副腎が原因かな?
とおもって先生に聞いてみたけど関係ないとのことでした。

www.j-endo.jp


去年あたりずっと寝ても寝ても疲れが取れない時期があったけど
これよむと副腎疲労が原因だったのかも。気を向けよう。。
style.nikkei.com


▼検査入院まで

年齢が若い場合はPAの可能性が高いということで、
最初は高血圧の診断と薬の処方はされず血液検査をしました。(4月くらい)
結果、アルドステロン値が高かったです、、
(ここでPAなのに下手に降圧剤飲むと悪化したりするらしい。。)。

ただこの、アルドステロン値、動いたりすると値が結構変わるとのことで
別日で安静にしてから2回目の血液検査を実施。でもやっぱし高かった。(5月くらい)

次に副腎に腫瘍ができていないかCTをとりにいきましたが(5月くらい)
結果は異常なし。

微妙だねえ、コロナ落ち着いてから大病院に行ったほうがいいねえといわれ、
ずっと病院行かずにいましたが、
9月くらいに紹介された大病院で血液+尿検査したところ
アルドステロン値もレニン活性についても白とは言えないグレーな判定結果に…
(すごい高いわけでもないけど、ちょっと高いくらい)。

白黒つけるために検査入院しましょうとのことで今回の入院に至りました。

▼まいにちの血圧

診断後、ずっと家で朝晩腕に巻くタイプの血圧計で座って血圧測定してましたが
上が120-135 下が75-95 と微妙な高血圧が継続。
ちなみに90超えると軽い頭痛が起こる。


検査入院(2泊3日)

概算で10万と言われていたので念のために限度証も申請しておいた。

▼スケジュール

初日:昼頃入院⇒レントゲン⇒心電図⇒ルート確保(採血と点滴どっちもできる針を刺すやつ)
2日目:朝から生理食塩水負荷試験(2リットルの塩水を4時間かけて点滴して採血)(終わったら顔ぱんぱんになってビビった)
3日目:朝からカプトプリル試験(降圧剤飲んで採血)(ちなみに血圧普通だった…)

ちなみに入院中の血圧はずっと正常値(上が120行かない 下も60-70)だったので、
家の血圧計が壊れている疑惑ありな気もする。。。

ネットで調べたところ
・生理食塩水負荷試験
・カプトプリル試験
・フロセミド立位負荷試験
の3つやるところもあれば今回みたいに2つやるところもあるみたい。
先生曰く2つの試験のうちどれか1つでも異常値出ればPAとして診断とのことでした。

▼入院費用

2日目の夜に今回の会計が概算で7万と言われていたけど
結局62,000円くらいでした(うち窓際オプション2000円*3日分なので実質55,000円くらいか。)
ビビッて15万くらいお金おろしたけど不要だった。

自分の裁量で窓開けられるので、
お金払って窓際にして本当に良かった。。。


検査のこれから

原発性アルドステロン症と診断されなかった場合

⇒本態性高血圧として治療

原発性アルドステロン症と診断された場合

・手術する場合
カテーテル入れてどちらの副腎に異常があるか血液採取して検査⇒からの手術。(だいたいこれで高血圧は完治)

・手術しない場合
⇒服薬(一生飲み続ける)



うーーん、どっちに転んでも嫌だけど。とりあえず結果をまとう。
ラーメン食べたいよお。。。(ラーメンマップを入れながら)

【資格】ビジネス統計スペシャリスト(ベーシック)を受けました!

最近ノンプロ研でデータアナリティクス部が盛り上がりをみせています。

▼まとめツイートはこちら
ノンプロ研データアナリティクス部輪読会#1 - Togetter
ノンプロ研データアナリティクス部輪読会#2, #3 - Togetter
ノンプロ研データアナリティクス部輪読会#4 - Togetter

が、、初回輪読会に参加したものの全然わからず挫折。
ちょっとだけ自分でもこそっと勉強してみようと
完全に趣味&自己満で民間資格の「ビジネス統計スペシャリスト」を受けました。
マイナーであまりネット上に情報が少ないので受けようとしている誰かのためにメモ。

stat.odyssey-com.co.jp


▼どんな試験か?

当社資格『ビジネス統計スペシャリスト』は、エクセルを活用したデータ分析のスキルを評価する資格です。
データ分析の実践に重点が置かれており、データ分析のための統計知識と共に、実際のエクセル操作まで学ぶことができます。

↑公式サイトより引用

今回はベーシック(基礎)とスペシャリスト(上級)のうちの基礎のほうを受験しました。
エクセルの関数や機能を使いながら、データの平均を見るところから始まり、
最後は簡単な相関分析や回帰分析をしていきます。

ちなみに私は統計初学者ですが、今回の勉強で特に躓いたところはなかったです。
エクセルが全部計算をやってくれるので、実際の数学の知識ほぼ不要で一次方程式くらい。
グラフは散布図を作る系が多いかも。
ちなみにソルバーとデータ分析アドインは恥ずかしながら初めて知りました。


▼テキスト
公式テキストが電子で配信されておらず、紙で購入。
ちょい分厚いが内容のボリュームはそれほど多くないのでさくさく進められる。
若干高いのでメルカリとか古本で買うのもありかも。


▼勉強時間
10時間くらい。エクセルを全くいじったことない人はもうちょっとかかるかも。


▼受験料
6,000円
うん、、お金儲けの資格だね


▼試験の流れ
Odyssey公式サイトで申込

最寄りのCBT試験会場(パソコン教室とか)を検索して予約
けっこう日にちが限られていたので要注意。

申込&振込
==============
OdysseyIDPWをもって試験会場へGO

必要事項入力して受験

その場で結果判明(7割以上で合格)

ちなみに試験当日は試験会場に私しか受講者いなくて気まずかった…。
最後に試験官から結果をプリントアウトされて終了。
(結果見られるのでこれまた気まずかった)
ちなみにセクションごとの正答率は出ますが、具体的に間違えたところなどは出てきません。

合格証は別途送付されるらしい。


▼当日の試験画面
操作用のエクセルどうやって出てくるんだろう?と思ったら
画面の右下にデータが入ったエクセルが出てきました。
それを操作しながら選択肢から選んでいきます。(エクセルで何か回答を提出することはない)

わりとエクセルを使う問題が多いので、ぽんぽんその場で回答していかないと結構時間かかるかも。
あと画面出てくるのに少し時間がかかるので後から見返す場合は時間ロスに注意。



▼受けるメリットはあるか?
なんだかかっこいい名前の資格ですが、ベーシックについては内容が簡単なので
お金を出してまで受ける必要は全くないと思いました、、、
でも、せっかくなので上級も受けてみようかな。。。(暇だし)

【グラレコ】初めてのグラレコ(基本的な描き方と反省)

おえかきの勉強を先月から始めました。
せっかくなら以前感動したグラレコもやってみようとこちらをポチり、
実際にやってみたところ鬼むずい(簡単そうに見えるのに)。。。

そもそもグラレコとは

議論や対話等を絵をつかって可視化したものです。
文字だけじゃない記録なので、関係性や話の流れ、ものごとの仕組みが一目でわかりやすく表現できます。
2年前に参加したトークライブで初めてグラレコをみたのですが、
グラレコ職人の方がササっと描かれていてとても感動したのを覚えています。
当時のイベントについて調べてたらこの方でした↓
note.com

f:id:twixoreo:20191209000627p:plain

グラレコの描き方

基本的なルール

・人間やモノをデフォルメして描く
⇒凝らずにとにかくシンプルに描くことが大事

・事実の描き方
5W1H+「HowMuch」を意識して図式化
⇒とくに矢印や順序を意識(本にはそれぞれの詳しい書き方が載っています。)

・感情の描き方
⇒「Do」:どんな行動をしているか
⇒「Face」:どんな表情か
⇒「Say」:何を思ったり言っているか(吹き出しの描き方も工夫するといろんな表現ができる)
※個人的な意見ですが文を読んで絵にする例題がかなり意地悪。。(そんなんでいいのかよ!みたいなのが多い)

・使う色
基本的に3色だけで描いていきます。
デジタルで描く場合パレットにあらかじめ登録しておいたほうがいいかもしれない(反省)
⇒1色目:基本色(黒など)
⇒2色目:強調色(原色の明るい色で赤など)
⇒3色目:補助色(トピックセットのまとめ用)

グラレコの構造

主に以下3つのパーツで構成されます

・タイトル
⇒通常はタイトルと登壇している人の似顔絵で構成
目立つように会議が始まる前に仕上げておくそう。
ロゴとか配置しておくとあとから見返すときにわかりやすい。

・トピックセット
⇒1つの話題のまとまり。
キーワード+その話題のサマリ2行くらいで構成
サマリは長くなりすぎないように気を付ける
サマリーでは表現しきれないところをビジュアライズする。
最初は難しいのでアイコンだけでOK。
※追いつけない場合はキーワードだけ、サマリ長めでもOK
※無理になんでもグラフィックにしない

・ストーリーライン
⇒トピックセットや全体の流れをまとめる。
話のまとまりや順序、転換などわかりやすいように矢印や区切りをつけていく。
時系列やトピックごとに並べたり配置はいろいろ。

実際にやってみた

本に棋士の羽生さんのTEDを記録する例題があったのでやってみました。
ビデオの長さは10分。ビデオを再生する前にタイトルを入れておきます。
で、、初めて描いたのがこちら。

楽勝やろ、と思って臨んだところ、全然うまく書けない&描けない!!
ほぼただのノート(しかも抜け漏れが多い)

反省点
・まずほぼグラフィカルじゃない(ノート取るのに必死すぎた)
⇒練習あるのみな気がする
・3色使いできていない
⇒話が脱線したスキをみてトピックをまとめたほうがよさげ。
・例をもっと簡単にかけたかも
⇒箇条書きじゃなくても順序だててもっと簡単な単語でかけたかも。
・注意散漫になって抜けているところが多い(根本的にマズイ)
⇒聞く&同時に書く訓練が必要そう。
・空間の取り方が難しい
⇒1枚にこだわらないほうがよさそう。
・論点が整理できていない
⇒漏れているから当然だ…。
・字が汚い
⇒ほかの人も読むという意識が必要。。。

最初はTEDくらいの長さのものから始めて30分、1時間とどんどん長いものをレコーディングしていくと練習になるらしい。
90秒ドローイングと一緒に習慣化していこうと思います。
書籍の後半(議論を進める系会議のグラレコ)も読んだらブログに書こうかな。

【GAS+AppSheet】百ます計算の問題を毎日自分に送って自作アプリで結果を記録する(前半)

完全引きこもりOLとなってはや5か月となり、最後に出勤してから4か月がたちました。
はやい、はやすぎる…!

ほとんど家から出ず、平日も休日も景色が同じ…。
脳が退化していくのを日々感じるため、ちょっとでも刺激を与えておこうと
小学生ぶりに百ます計算を始めることにしました。
(昔は足し算1分くらいでできた記憶があるのに1分半になっていてショック)

百ます計算を知らない方はこちらをどうぞ(Wiki)


そんなわけで今回は
毎日百ます計算をGASで通知
+
(ノンプロ研の「ノーコードアプリ」定例会に感化されて)
記録ができるアプリ
を作成しました。

今日はGASの部分についての記事です。

f:id:twixoreo:20191209000627p:plain

GASの部分

スクリプトの概要

毎日定期で問題のPDFをメールで通知してついでにこたえと時間計測のためのストップウォッチのサイトも一緒に送る。


最初は問題をスプレッドシートから完全自作しようとしていたのですが
なんと、毎日問題を自動配信している素敵なサイトを発見!
これを使わない手はないと思い、問題をPDFにして送ることにしました。
ちなみにPDFにする理由はiPadで書き込みを行いたいから…。

参考にしたサイト
dailywork.net

百ます計算のページをみると問題と解答があるので、そこを直接みにいきます。
Chromeの検証でみるとページのURLがわかります(見なくてもわかるけど…)。
f:id:twixoreo:20200730011030p:plain


GASのコード

//  ==============
//  メインの関数(トリガーはこっちを指定しておく)
//  ==============
function sendMail(){
  
//  ランダムで今日の計算を選ぶ
  let todayKeisan = createKeisan();
  
//  URLから今日の問題をPDFにする
  let url = 'https://dailywork.net/manabi/print.php?p_no=' + todayKeisan[1];
  let pdf = UrlFetchApp.fetch(url).getAs('application/pdf');

//  今日の答えのURL
  let urlAnswer = 'https://dailywork.net/manabi/print.php?p_no=' + todayKeisan[2];

// メール作成  
  const to = PropertiesService.getScriptProperties().getProperty('MY_EMAIL');
  const subject = "【定期配信】今日の百ます";
  let body ="今日の百ますは" + todayKeisan[0] + '\n\n' +
            'ストップウォッチ: https://stopwatch.onl.jp/' + '\n' +
            '今日の答え: ' + urlAnswer;

// メール送信
  GmailApp.sendEmail(to,
                     subject,
                     body,
                     {attachments: pdf})
}
//  ==============

//  ==============
//  ランダムで今日の計算を選ぶ関数
//  ==============
function createKeisan(){
  
  let items = ['足し算', '引き算', '掛け算', '割り算'];
  let random = Math.floor( Math.random() * items.length );
  let itemurl = [items[random]];  

//  選ばれた計算によってURLの語尾をセット[計算,問題のURL語尾,答えのURL語尾,]
  switch (items[random]) {
  case '足し算':
    itemurl.push('91010','91015');
    return itemurl;
    break;
  case '引き算':
    itemurl.push('91020','91025');
    return itemurl;
    break;
  case '掛け算':
    itemurl.push('91030','91035');
    return itemurl;
    break;
  case '割り算':
    itemurl.push('91080','91085');
    return itemurl;
    break;
  default:
    return ['エラーが出たので難しい割り算','91040','91045'];
}
};
//  ==============


無事に配信されました!!
WebページをPDFに変換できるのを今回初めて知りましたが、ほかにも応用がききそう!

f:id:twixoreo:20200730012115p:plain

【VBA】pingを打って職場のほかのメンバーのPCシャットダウン状況を確認

うちの会社はPCのログを使って勤怠管理をしています。
で、月に何回か問題になるのがパソコンのシャットダウン漏れ。
保存し忘れたデータなどがあった場合、うまくシャットダウンができず正しく勤怠管理が行えません。。


pingを打って反応がなければシャットダウンされているんじゃね?と思い
やってみたところビンゴ!うまく調べることができたのでVBAでツールを作りました。
ping乱れ打ちにはご注意ください

エクセルの画面はこんな感じ

f:id:twixoreo:20200720220037j:plain

f:id:twixoreo:20191209000627p:plain

VBAスクリプト

Sub pingうつ()

Dim cmd As String
Dim wsh As Object
Dim i as long

'-n 1 -w 1のオプションをつけて1回のpingを打つ/タイムアウトをデフォルトの4秒から1秒に変更
    For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
        cmd = "cmd.exe /c ping " & Cells(i, 2) & " -n 1 -w 1000"

'shell関数でコマンドを叩く
        Set wsh = CreateObject("WScript.Shell")
        If wsh.Run(cmd, vbNormalFocus, True) Then
            Cells(i, 3).Value = "シャットダウン"
        Else
            Cells(i, 3).Value = "PC立ち上げ中"
        End If
        ' コマンドの初期化
        Set wsh = Nothing
    
    Next
    
    MsgBox "確認完了", vbInformation
    
End Sub

参考にしたサイト

algorithm.joho.info
というかまんまこれパクリ(すみません)

www.infraexpert.com
オプションを何も指定しない状態だと正常でも見つからなかった場合も
4秒間タイムアウトを待つので-wオプションでミリ秒数を変更します

officetanaka.net
前も強制的にメモ帳立ち上げてなんかするときに使ったな…。

win.just4fun.biz