Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

ディスカッション

答えを見つけ、質問し、Alteryx の専門知識を共有してください。

エクセルの見え消しデータを除いてデータを取り込む

gawa
15 - Aurora
15 - Aurora

エクセルでデータが取り消し線で見え消しになっていても、Alteryxで読み込むと普通に存在するデータとして処理されます。なので、時折「見え消しデータは削除のつもりだから、それらを無視してデータ処理してほしい」vs「見え消しされてもAlteryxで区別できなくて困る」というミスマッチが発生します。という相談を何回か受けたことがあったので、実現するワークフローを作ってみました。

 

処理の手順は以下のような感じになります;

① エクセルをzipファイルとみなし、zip内のxmlファイルからデータを読み取る

sheet1.xml

セル内の値等が格納されてる。シートが複数あるとsheet2.xml,sheet3.xml...のように複数xmlが存在する

style.xml

セルの書式設定が格納されている

sharedStrings.xml

文字列データは前述のsheet1.xmlではなく、こちらに格納されている。セル内に個別に書式設定がある場合、このファイルでオーバーライドされる。エクセル内に文字列データがひとつも無い場合、このxmlは存在しない

② ①で読み込んだxmlから必要なデータをどんどんパースしていって、取り消し線が設定されているデータを突き止め、空文字に置き換える

③ 特殊文字置換や日付データなどの変換処理を行って出力する

 

例えばこういうデータを処理すると

gawa_2-1674788137197.png

gawa_3-1674788305460.png

 

マクロの上側のアンカーからはこんな感じで出てきます。A1,C1,D2,B4,B6はセル内全部取り消しなので、空です。B3,C5は文字列の一部だけ取り消しなので、部分的に取り除かれます。

gawa_5-1674788422777.png

 

下側のアンカーからは、取り消し線があるセル限定で、処理前後のデータを見比べることができるようにしてます

gawa_4-1674788398996.png

 

添付にマクロ含んだyxzp一式置いておきますので、ご自由にお使いください。

一応デバッグはしてありますが、エラー出たらすいません(エクセルの自由度が高すぎるので、複雑なxml書式に対応したREGEXパースできているか、ちょっと自信ないです)。

あと、条件付き書式で取り消しになってるデータは、どうやっても無理だったので、対象外にしてます。こちらも、予めご承知おきください。

2件の返信2
AkimasaKajitani
17 - Castor
17 - Castor

@gawa さん

 

たまに要望出てくるやつですね・・・。

 

Excelの中まで分析して見るという手法はまだやったことないですが、また機会があれば使ってみたいと思います。

 

gawa
15 - Aurora
15 - Aurora

@AkimasaKajitani さん

弊社は未だにエクセルに見え消しを多用する人が多くて、割と需要があったりします。こういうの作ると「エクセルに見え消しでデータいれても良いんだ~」と、データリテラシー的にはあまりよろしくない方向に曲解されそうで、それはそれで嫌なのですが・・・笑