「Excel」を含む日記 RSS

はてなキーワード: Excelとは

2024-03-17

Excelの数式を崩す人へ

関数型プログラミングを覚えてください

[] 分析ドメイン専門家やらせ

分析ツールを作って、様々な凝った統計情報を表示したいと思ったことはないだろうか。

ロジスティック回帰モデリングして係数表示をしたり、決定木を視覚化したり、相関の行列ヒートマップで表示したりと、いろいろなことができる。

しかしいざツールを作ってみると、「そんな分析必要ない」と叱責されてしまうのである。これは一体どういうことなのか。

それは開発に近い人の考える「分析」とビジネスに近いところにいる人の「分析」が、メンタルモデルからし全然違うのである

ドメインに近いところにいる人たちは、もっと基本的統計要求するだろう。

収益の推移だったり、アイテム特定属性ユーザークリックされる確率だったり、特定の条件に合致するアイテムの単価の分布だったりと、そういうものだ。

こういった分析ほとんどはExcelで行われる。

開発者がやるべきことは、csvファイルアイテムに対する特定検索条件・グルーピング条件などで出力してダウンロードさせることだ。

ドメイン担当者検索条件を入力してcsvダウンロードし、分析Excelで行うだろう。

2024-03-16

仕事が遅い糞ボケ無能から仕事を引き継いだ

無能デスクにどんどん仕事が溜まっていくので仕方なく一部の仕事を肩代わりすることにした

1000枚くらいの伝票からPCデータを起こす作業なんだけど

「この①Excelファイルにまず伝票番号と種別を打って、次にもう一回伝票を見て②Excelファイルに日付と数量を打って、

最後にもう一度伝票を見ながら③Excelに数量と種別を打ってそれぞれ間違いがなければExcel内の集計結果が一致します」

かいバカみたいな内容の業務だった

こんな新人とかバイトにでもやらせた方がいいバカ向けの作業をそのまま実行するほど暇ではないので

まず生データExcelファイルを作り伝票番号、数量、種別、日付を一通り入力してそこから3つのExcelデータを転記するPythonを書いて仕事の手順を簡略化した

これで無能が1週間かけてやっていた作業が1日で終わるようになったが、一通り処理して伝票と集計結果を無能に渡したところ

「引き継ぎの時に言わなかった自分も悪いが伝票は役所に提出する関係でこういう順番に並び替えて持ってきて」と鼻で笑って突き返してきた

お前も悪いというかお前しか悪くねえぞ糞ボケ無能

2024-03-14

共同作業できるアプリ

仕事柄、共同作業できるアプリを使う機会が多い。

ひとつファイルを同時に複数人でワチャワチャいじれるやつ。

Excelだと、今誰がそのシートを開いていて、今誰がどのセル編集してるかとかが視覚化されてる。

ユーザー名を添えたフォーカスがあちこち動いて、目の前でリアルタイムセルの内容が変わっていく。

大人数でいじってると、たくさんの目印がそこらじゅうを動き回ってて楽しい

Adobe XDFigma とかも同じ。人物アイコンマウスポインターのように画面を動き回って(実際、マウスポインターの位置キャプチャしてるんだろうけど)、目の前でリアルタイムにパーツを動かしたり変形させたりしている様子がわかる。

 

面白いし便利なんだけど、どこかこう、居心地の悪さもある。

なにしろ共有ドキュメントならいちいち進捗を確認しなくても見れば進行具合がわかるし、なんなら、仕事を頼んだヤツが「今ちゃんと働いているか」をモニタリングできてしまう。さっきからちっとも動いてないな、さてはこの作業を後回しにしてるな、みたいなことがわかっちゃう

それに、ただのユーザーアイコンとはいえ画面上で動き回ってアバターのような役割をするので、つい、他人アイコンに近づきすぎたり重なったりしないように気を遣ってしまう。誰だって自分マウスポインターに職場の人のアイコンが近寄ってきたら気持ち悪いだろう。

共同作業時の謎マナーみたいなものも今後失礼クリエイターたちがクリエイトしそうである

2024-03-12

anond:20240312221730

おすすめExcelだ!がんばれ!完璧でなくていい。まずは期限内の申告を目指そう。

2024-03-11

外貨預金為替差益で真面目に確定申告やってる奴おる?

自分外貨預金キャンペーン金利に釣られて外貨預金やりまくったせいで

外貨預金為替差益が400万くらい出てるのね

差益が20万を超えたら確定申告マストなんだが

所得税の追加納付だけで120

後日住民税の追加納付がきてさらに40万

計160万くらい持っていかれるわけよ

ちょっと重税すぎるでしょ

それはそれとして、

俺より現金持ってる老人世帯でも外貨預金で差益出てる家庭があると思うんだ

皆さん確定申告やってるんだろうか

どの銀行でも外貨預金為替差益が一発表示されるような機能はなくて

Excel駆使しないと計算できないと思うんだよね

俺だけメチャ真面目に計算して納税してんのに

デジタル使いこなせない老人がサボって納税してないなら流石に納得いか

2024-03-10

伝統的価値観の人にとって、ITのようなツールは「ずるっこのほん」

伝統的価値観の人にとって、ITのようなツールは「ずるっこのほん」でしかない。

まり人間は等しく肉体労働者であり、権力に伏し、一方が支配し一方が支配される、機械のような存在である

という思想に基づいている。

ExcelマクロやPowerAutomateで自動化!といったものは「自分価値を跳躍する、ズル道具」でしかない。

現在他国侵略するような選択をとるトップPCを使えるだろうか?ITに注力しているだろうか?と問えばよい。

ハンコの向きをお辞儀させたい価値観のような人間にとっては、社会進化すると都合が悪い。

IT邪魔者しかないのだ。

anond:20240310135143

2024-03-09

男女厨ちゃんおよびフェミニスト自称するツイフェミを構うと碌なこと無いが賃金とか

ワイくんの自認はフェミニストである。ワイくんの定義するフェミニストとは下記

社会的政治的そして経済的性別平等と信じる人のこと

 

1. the theory of the political, economic, and social equality of the sexes

https://www.merriam-webster.com/dictionary/feminism#kidsdictionary

なお、性別進化過程有性生殖になった以上の意味は無い、役割ロール廃止しよう、ジェンダーレスでいこう派だが、

敢えて、フェミニスト自称しているのは、明日から男女の枠組みを無くしますが今の段階では不可能で、

フェミサイド、性被害地方長男の嫁、本家の嫁、ガラス天井などの現実があるから

 

 

そんでタイトルだけど、『日本の女は外ではロクに働かない』で終わる。ようやく院卒で働く気を見せる程度

ついでにキャリアの中断は起きていても、キャリアの断絶は起きていないことが厚生労働省が発表している平均月収を見てわかる

(月収40万後半50万超えてるのに、キャリアの断絶とか言われましても・・・ね)

性別年齢階級高校:賃金(千円)専門学校:賃金(千円)高専短大:賃金(千円)大学:賃金(千円)大学院:賃金(千円)
~19歳188.2----
~19歳178.7----
20~24歳211.4214.6220.4235.1260.5
20~24歳193.5224.1213.9232.1248.5
25~29歳239.2244.9256.6272.8289.9
25~29歳205.3244.4237.3255.9278.8
30~34歳263.8275290319.3357.3
30~34歳214.4248.4244.6279.2343.3
35~39歳287.2300335.6375.5435.5
35~39歳220.2267.2255.6307.2393.2
40~44歳311.2324.6366.5414.8516.5
40~44歳229.2275.2277.3327.6408.6
45~49歳335.4352.4398.4455.4558.8
45~49歳234.7291.5283.5343.4454.4
50~54歳346.4377.9418500632.4
50~54歳240.2294.4297.8364.2528.9
55~59歳350.3387.2434.8513.8645
55~59歳242.1306.2300.9375.7585
60~64歳279.2302.7318.2377.3558.8
60~64歳211.4271.6251312.4564.6
65~69歳241.2269.3288.8332.2610.2
65~69歳197.2250.7251.1318.2533.8
70歳以上220.7221.3310.3339.3498.2
70歳以上204.7254.1271.8319.6500

https://www.mhlw.go.jp/toukei/itiran/roudou/chingin/kouzou/z2022/dl/03.pdf

 

 

そもそも労働参加率、73%くらいなんですよね。あと男より月40時間労働時間短いし、非正規率も高い

女性就業時間 男性より月40時間短く

 日本では働く女性の数が増える一方、就業時間の男女差が大きい。総務省によると、女性労働人口(15~64歳)は2021年で2679万人、労働参加率は73%と10年で約10ポイント上がった。結婚出産を機に職を離れる人が多かったが、育児休業などで女性が働き続けやす環境に力を入れる企業が増加。30歳代など子育て世代労働参加率が下がる「M字カーブ」の問題改善しつつある。

 ただ労働時間をみると課題はある。総務省によると女性の平均月間就業時間男性より40時間ほど短い。最も多いのは男性と同じく月121~180時間働く人で全体の4割強を占める一方、月120時間下の人が3割以上で男性(約1割)より多い。パート派遣など非正規雇用で働く人の割合女性は約5割と男性(約2割)より高いことが背景にある。
 国際労働機関ILO)によると、日本労働時間の男女差は主要7カ国G7)で最も大きい。週平均の差は10時間を超えており、米国の約2倍、スウェーデンの約3倍だ。

https://www.nikkei.com/article/DGXZQOCA19B3I0Z11C22A0000000/

 

ついでに、独立行政法人労働政策研究・研修機構『国際労働比較2022』229頁 によると、欧米に較べたら日本の女は長時間労働(週49時間以上の労働)してる方らしいですが、

アジア圏ではぶっちぎりで働いない6%なのだそう

(逆に言えば下方婚増田は、インドネシア22%、フィリピン20%あたりへ移住すればいいと思うよ)

https://www.jil.go.jp/kokunai/statistics/databook/2022/documents/Databook2022.pdf

 

 

 

ただし、ガラス天井は確実にある。例えば経団連役員女性がなったり、経団連副会長女性がなる、ただそれだけでニュースになってしまレベル
でも、下々の者は?

女がイージーってのは、自立・家族を養うべく職業経験を積む必要性が無いってだけで、それなりの規模感の会社本部長以上の役職を目指すというか役員目指すとか言ったら、

疑う余地なく確実に男女差別はある

 

ただガラス天井ガーとかネットでわめてるのは、

ExcelWord電話応対できます(←でっていう)、子育てガー・生理ガー(←ハイハイ)みてーなレベルが99%
部長以下(下々の者) に限定した話なら男女差別も何もない
下々の者は会社に都合の良いパフォーマンスを発揮すること以外は求められてはいない

 

女は自立せずとも良いと教育されてきたお嬢様方が、ただ単に働く気がない・職業経験を積む気がないだけ

バカに至ってはせっかく先進国に生まれたのに、自ら性や若さを売って、水商売風俗したりね

 

あと、女性活用とか騒がれる前から不適切ポジションに女を置くことはあった

うっふんあっはんしている女を可愛い可愛いしたいバカ絶滅しない限りはどうにもならないね

令和では職場セックスを持ち込むやつは滅ぼそう、会社で愛されメイクファッションとか言ってるやつも当然滅ぼそう

(プライベート女性の性表現を追求・楽しむのは好きにしてだけど、職場に持ち込むバカフェミストを自称する人は積極的弾圧して欲しい)

 

 

現時点では危険労働をすべて機械に置き換えることは出来ず、現代では主に男が担っているわけだが・・・

デスクワークにおいても基本的日本の女は働いていない

いったい何だったらするんだ?以前に、日本お嬢様がたは平等言葉意味を知っている?

  

 

とはいえ、母ちゃん

これはフェミニズム(社会平等)とは関係なく、単なる母ちゃん教の話なんですけど、母ちゃんがキリキリ働いてるとこ見たい?って言われたら見たくないですね

 

女が専業主婦が当然だった(あるいは標準モデルとされた)のは、上級国民を除いて昭和の一時期だけ
おっかあは、めかしこみもせず、朝から晩まで炊事洗濯作業行商炭鉱と内外で働いて、当たり前のように三従(幼少時は父兄に、結婚したら夫に、夫の死後は子に従うこと)を課せられ、
場合よっちゃ姥捨られた

 

ようやく、どこのご家庭のおっかあのことも『お姫様』として『母上』としてを扱うことが出来る時代になった、

大切なおっかあを想っても極貧故に報えず涙した先人が報われた時代になったのに、なぜ、わざわざ逆戻りを?って思います

実際、欧米でも女は長時間労働してないですよね?(アジア圏はしている) 

 

 

ちなみに子どもを最優先に出来る男女を増やすと、たぶんもっとパパママ高齢化は進むと思います(30歳前までにキャリアに影響がでない水準まで経験を積むほぼ無理)
ついでに労働参加率ももっと下がると思います

人間幸福になるために生きているのであって、資本家に仕え働くために生きているわけではないので・・・

 

お金がないので子どもを作るのを躊躇っているご家庭は、積極的生活保護や各種公助を受ければいいと思います

 

 

じゃあどうするの?

成り行きに任せたら?子ども作る人は何しても作るので堕胎数が10万割ったことも無いし

(20~24歳の堕胎数が最も多く、次いで25~29歳、30~34歳、35~39歳)

https://www.mhlw.go.jp/toukei/saikin/hw/eisei_houkoku/21/dl/kekka5.pdf

 

どうせ コロナを経ても世界的には人口増加かつ、AIで人あまり時代になるのだし

ただ人間がやった方が安い分野って結構仕事多いと思うので、男の労働者の方が有利にはなるでしょうね

 

なので、この時代に、上級国民でも金持ちでもないのに、女児プリンセスとして育ているのはほぼ虐待と言って良いと思います

上級国民でも金持ちでもないご家庭のご両親は、女児自己決定が出来る職業婦人として育てましょうね

2024-03-07

OracleODBCドライバが使えなくて時間を損しちまった。

ExcelVBAを使ってDBからデータを引っ張ってきてワークシートに表示したかったのに、日本語が「?????」と化けてしまう。

文字セットを設定する場所も見当たらない。もう意地を張らずに諦めたほうがよさそうだと悟った。

で、俺はOLE DB結婚したってわけ。

OLE DB最強説あるよね。

「名もなき家事」は「Excel計算」と一緒

ハッとした

2024-03-06

ExcelでCtrl+↓とかで一瞬でシートの一番下とかに行くじゃん。

あれと光の速さってどっちが速いの?

ExcelのCtrl+↓の方が速いと思うけど、どう?

2024-03-03

面接に来たおっさんExcel使えるって言ってたけどパワークエリVBAも使えなかった。何でエクセルできるって嘘ついたんだ?

この前、職場事務職(月21.7万円)の面接無職おっさん(48)が来たんだが

パソコンスキル質問

そのおっさんが「パソコン得意です。Excelできます」ってドヤ顔で言ったんだよね


そこで俺は「パワークエリVBAできる?」って聞いたら

おっさんが「できません…」って言い出して呆れた😅

ExcelなんてそれこそパワークエリVBaできてなんぼなのに


じゃあ何ができるんですか?って聞いたら関数とか…って言い出してドン引きしたわ


そんなん教えたら誰でもできるもんやん


パソコンテスト一応やらしたけど、関数にvlookup使ってたしこれはないなあって思って落としたわ

無職からって暇つぶしに冷やかしに来るのやめてくれよ。。。

Excelってなぜ出来ないのかと調べてみたら

例えば、現場で手軽にデータ結合や集計が行えなければ、ビジネススピード感が出ない、

だとか、BIツール社内Wikiでは不十分な業務がある、だとかそう言う理由だと思ってた。

だけど、最大の原因は「教育コストがかかる」、「ツールの使い方を覚えようとしない」らしいね

金もらってんなら、新しいツールの使い方くらい覚えろよ。

無造作に散らかったExcelがどんだけ仕事増やしてると思ってんだよ。

2024-03-02

anond:20240302043100

Excelシステム構築することは良くないと言われがちだけど、何故良くないのかを説明するのは難しいな。

自分Excelシステム構築とかしたことがないから、何を話しても具体性の無い空想論になってしまう。

anond:20240302203011

DBに保存するようなデータExcelから編集する事自体今時じゃないやろ

anond:20240302100245

DB直じゃなくてPowerBIのセマンティクモデルとしてAzureADと紐付いた認証認可付きでデータ公開してExcelからPowerQueryとかで接続するのが今時じゃないかな。

このあたりはM365使ってる大企業とそうじゃないところで大きく感覚が分かれる気はする。

anond:20240302043100

Excel作法というか極意は知らないフリだろJK

他人のことは放っておけ

たまに自然発生するExcel先生適当やらせときゃいい

作業頑張った感が出る中間ファイル生成させるとかやって、空いた時間勉強するんやぞ

ExcelVBAの後にどうせだから他のVBAもやっとくかと遊んでたら、OutlookVBA名前空間出会って衝撃的だった

会社から365移行するとか言われたんでOfficeScript触って連想配列かいう素晴らしいもの出会った

GraphAPI使って、メールも含めて仕事してるフリが出来るようになってだいぶ満足感出てきた

さぁ次は何しようかなー

anond:20240302125255

関数でできることは関数でやれ、というのには同意

最近は便利な関数も増えた

昔はVBAで処理したり関数作ってたようなものも、Excel側で用意されるようになった

業務で何かしらの処理を入れたい場合、闇雲にVBA書くより、新しい関数に何があるか確認してからが良いと思う

anond:20240302043100

VBA嫌いのExcel師(営業事務)なんだけど、その程度のことをVBAでやろうとするヤツを駆逐したい。

お前は営業や他のユーザー理解度自分レベルだと勘違いするのをやめるべき。

うちの会社はVLOOKUP(最近INDEXMATCH)組めるのが「Excelできる」と名乗っていい最低限のラインで、営業営業事務では名乗れないやつはほとんどいない。でもVBAは使える人は稀。

基本はその「難しくてもVLOOKUPの知識を駆使すればなんとかなるレベル」でExcelを組まないと破綻する。

なので計算用シートは絶対必要

うちの会社の一事業部複数会社発注をしていて、そうすると会社ごとにデータ比較して見たいのに項目や項目順が違って簡単比較できない、ということがよくある。

その場合マッピングと呼ばれるデータ項目の統一化が必要なんだけど、会社によって合算したいデータがそれぞれ別の方法しか取れないとか、合算値に余計なデータが入ってるからrawデータ取ってきて件数レコード数でカウントしないといけないとか、まぁ色々出てくる。

取引に対してのデフォルト対応としての統一マッピングはしてるけど、そういうのはVBAでやらずにSaaS使ってるし、ものによって重視する値が変わるので例外が2割くらいある。うちの会社はその辺りの裁量営業に認められているので例外も多め(なおオンリーワンになりたいためだけに特殊対応した奴は一人を除いて矯正or自滅済)

そういう融通をきかせるのにExcel計算シートでマッピングするのは絶対

あとVBAだと営業側が「どういう計算をしてるのか」とか「正しい数値が出てるのか」が確認できない。

っていうのは例えば100円3件と150円2件の仕入れにうちの取り分2割乗せて720円として見せたかったのに、『=100*3+150*2*1.2』って数式書いたせいで660円になっとるやんみたいな。こんなんよくある眠い時のヒューマンエラーで、VBA書く人ならやらかさない、なんてことは絶対ない。

しか営業がこういうのの修正とか提案用にちょいちょいと列増やして数式入れようとしても「マクロ壊れるからやめて」とか言われる。営業自分で調整可能なら1時間以内でできるものでも、VBA書いた人に依頼しなきゃいけないんだと、書いた人の通常業務との兼ね合いで1週間待たされたりする。

営業からしたらそんなもんVBA野郎エゴ中のエゴですよ。

営業に金稼がせるためには営業利便性裁量必須で、Excel利用者裁量権が認められてないVBAツールなんか全体最適化されてないクソ。

※なお裁量大きいからってあんまり好き勝手するとやらかした時に他の助けも得られず(やれることに限界がある)自滅ルート

自分も軽くVBA習得してるんだけど、フォルダ内のデータ一括読み込みとシートの分割統合関数代わりにしか使ってない。しかもただの効率化なのでVBAが死んだところで手作業に戻せる範囲

他人保守できるように作るのならVBAなんか入れるべきではないし、VBA入れないなら計算シートは必須。あと計算周りを大掛かりにやるならSaaS入れてDX検討すべき。

anond:20240302043100

原則関数とピボットテーブルのみで完結させ、マクロは使わない。ってのが良いと思う。

DBからデータぶっこ抜いたり(今のご時世は出来ないと思うが)、外部ファイルを読み込むとかしないで、ブック内のデータを処理するだけならマクロいらんやろ。

数十万以上のデータ件数になるとさすがにきついけど、そうでもなければ関数駆使すればだいたいいける。

てか、Excelお絵かきソフトであって、表計算として使うんならGoogle Spreadsheetの方が絶対に良いわ。

有楽だし、誰がいつどこをどう変更したか履歴勝手に残るし、壊れないし。

anond:20240302043100

EXCEL原理主義からするとマクロを入れる時点でワークシート関数は入れない。

マクロがあるEXCELは読み取り専用。

アウトプットEXCELでもCSVでも別ファイル

入力画面はフォームにする。

複数コピペでやりたい時だけ、入力用の空シートにするけど、それだったらCSVファイル連携

1ファイル配列に突っ込むのはメモリが怖いのでやらない。今ならほぼ大丈夫だと思うけど、ストリームで処理する呪いにかかってる。

計算用シートっぽいものを使うとき

商品マスタとか参照するときに、外部データ範囲DBからマスタをシートに張り付けて使う。1万件ぐらいまでならデータADOとかで取ってdictionaryに入れて検索するより、シートからVLOOKUPで取るほうがよっぽど早い。

エクセルマクロのお作法計算用シートという諸悪の根源について)

前置き

この日記の内容は、会社の後輩から最近エクセルマクロ勉強し始めて(キラキラ)」という話を聞いて、先輩ムーブかますために話した内容になります

とにかくこれから説明する「計算用シート」が憎くて憎くてたまらず、ちょっと引かれるほど熱弁してしまいました。

ただ、他の方がどうされているのかや、逆に「計算用シート」を愛用する方の意見も聞きたくなり、増田に書いてみました。

増田の経歴

この記事趣旨

エクセルマクロのお作法とか書きましたが、要するにエクセルマクロで「計算用シート」って色々な意味でよくないよね、という話をしたいです。

3行でまとめます

〇 エクセルシートはユーザーインターフェースインプット)か出力結果(アウトプット)のためのものとすべき

〇 データ加工をする場合には、原則配列辞書配列連想配列)に格納して加工を行い、最後の結果だけシートに出力するべき

〇 何事にも例外はある。

計算用シートとは

この記事では、エクセルシートを下記の通り分類します。

エクセルマクロにも色々あると思いますが、今回は下記を想定します。

日付や人物名などを入力し、データベースや別のエクセルファイル、別のシートから取得したデータ入力された値を基に加工し、加工後のデータをシートに出力する

この場合入力欄があり編集可能なシートがユーザーインターフェース、最終的に加工されたデータが出力されるシートが出力結果です。

(もちろん、ユーザーインターフェースの別の欄(セル)に出力する場合もあるし、その場合ユーザーインターフェース出力結果が一体のものとみなします。)

また、データ用シートは同じエクセルファイル内に基となるデータが含まれ場合を想定します。

(これ自体が非推奨で、SQLデータベースかせめてAccessを使え、という意見はありますがそれは別にして…)

ではここで定義する計算用シートとはなにかというと、文字通り計算を行うためのシートです。

例えばイメージするのはこんなマクロです。

1.元となるcsvファイルエクセルに読み出してシートに格納

2.そのデータは日付が数値型になっているので、日付(数値型)の入った列を文字列に変換した日付(文字列型)列を新たに作成

3.その列をキーとして対象となるデータを取り出すvlookup関数を各行に格納した列を新たに作成

4.その列で特定された列をさらに加工した列を新たに作成し、…

これは極端な例ですが、とにかく変数配列定義せず(あるいはエクセルセルオブジェクト変数のように扱い)、エクセルに値を入力し、それを直接加工することで目的となるデータ加工をしたり、様々な処理をします。

その舞台となるのが、計算用シートです。

なんかこんな感じの処理をしているエクセルマクロ、どこの会社でも腐るほどあるんじゃないでしょうか。

ある程度マクロに慣れた気の利く人なら、このシートはロック非表示にして、ユーザーから触れないようにするでしょう。

・・・これ、やめたほうが良くないですか?

こいつが日本生産性を落とす諸悪の根源だと思います

駄目な理由

ある程度詳しい人なら同意してくれると思いますが、このやり方でダメ理由はいっぱいあります

後で説明する配列辞書配列連想配列)と比べると格段に処理が遅いです。

わざわざエクセル操作しているから当然ですね。

ちょっと詳しい人が知っている「画面更新非表示」を駆使しても、配列を使った処理からみれば止まったハエです。

(参考)VBAで作ったマクロの高速化① 配列を使う

  • 可読性が下がる

いったんエクセルシートにデータを格納して加工しているので、コードエクセルシートを両方見る必要があり、とても読みにくいです。

変数として命名されていないのも致命的で、処理の意図が余計に分からなくなります

計算用シートを事前に用意して、別のセル関数を格納しておき、マクロ関数を使ってデータ加工をするものも見たことがあります

これは懲役刑に処したほうがいいと思います

まり知られていませんが、セルの最大文字数は32,767 文字です。

セルの最大文字数を超えると自動的に隣のセルに値が入り、シートが滅茶苦茶になります

他にもエクセルの数値を丸め自動変換の仕様とか文字列→日付の自動変換とか、いくつものバグに苦しめられます

できる人だと、いちいち最大文字数が多い場合の処理を書いたり自動変換機能を殺したりしてくれますが、そんなことに手間をかけているか日本GDPは上がらないんだと思います

他にも、データが大きくなると処理が重くなり不安定になる、計算用シートを人が触ってしまリスクがある、などいくらでも理由は上げられます

(逆に利点は、目の前でガチャガチャ動いてスーパーハッカーになった気分になれるくらいしか思いつかない・・・

じゃあどうするの

配列を使いましょう。

配列とは何ぞや、という人はググってください。

配列データを入れて、データ加工は配列変数に対して行い、一番最後の出力だけセルに値を格納する。

他のプログラミング言語なら普通にやっていることです。

個人的オススメしたいのは辞書配列連想配列)で、うまく使うとデータ管理簡単になり、処理も爆速になります

(参考)【VBA】大量データから高速で値を検索【Dictionaryを使う】

csvファイルもなまじエクセルで開けるだけに別のブックやシートで開きがちですが、これは悪魔のささやきです。

直接ファイルを読み出してLine InputやSplitで配列に格納しましょう。

エクセルとして開くやり方はコード書くのは簡単でも、実行時間に天と地ほどの差が出ますエクセル開くと処理もめちゃ不安定です。

(参考)Excel VBAでCSVオープンするときのパフォーマンス比較

いや、冒頭のマクロを書く人の気持ちも分かるつもりです。自分コードを書き始めたころは全部シート上で操作していました。

冒頭のマクロのほうが直感的なんですよね。自分が手で書くことをマクロやらせる、というマクロ本来趣旨にはあっていますし。

途中の計算過程もすべて目の前で展開されるから分かりやすいです。

ただ、それではダメなんです。。。処理は遅いし挙動不安定だし後で改修・保守する人が死にます

あと、エクセルシートやセルは当然エクセルしかないので、エクセルマクロVBAから他の言語に移れなくなります

自分エクセルマクロの里の出なので、計算用シート脱却には苦労しましたが、苦労して会得した配列辞書配列連想配列)のスキルはそのまま他の言語に活かすことができました。

配列の中身を見る方法別にある(ローカルウィンドウやDebug.printを使うなど)ので、リハビリに取り組んでほしいです。

(参考)VBA デバッグの仕方

もちろん例外もあります

計算用シートを許容できる、使うべきケースもあると思います。。

個人的には、

最後のは、なんでも自分確認しないと気が済まない上司発注で、意味不明と思いましたしたがしぶしぶやりました。)

などの場合計算用シートを使ってもよいと思います

この場合インプットエクセルシートに直接加工するのは論外なので、計算用(加工用)のシートを用意してそこで操作を行うことは必要だと思います

他にも、こういうときは「計算用シート」があったほうが良い、という状況があれば教えてもらえると嬉しいです。

最後

そもそもツッコミとして、「データ加工するならエクセルマクロを使わずpythonとかRとかもっとまともな言語使えよ」という言葉が来そうな気がします。

ただ、個人的にはエクセルマクロVBA)は大好きですし、初心者にもおすすめしたいです。

自分のような非エンジニアだと、セキュリティ関係などでPythonの開発環境とかすごく用意しにくいんですよね。

(あと、コマンドプロンプトの真っ黒な画面が怖かった)

その点エクセルマクロは、開発環境の用意はプロパティでチェック項目を一つオンにするだけだし、入門書がたくさんあるし、セル挙動を追えば視覚的にプログラム理解できるし、初心者に優しいです。

(そのやさしさが上述したとおり悪魔の罠なわけですが。)

最初計算用シートに頼ってでもエクセルマクロからプログラミングを始めて、本格的なデータ加工をし始めたあたりで計算用シートという諸悪の根源から脱却する。

さらに本格的なデータ処理を行うために、PythonやRなど別の言語習得したり、エクセルからSQLデータベースやACCESSなどに切り替えていく、というプロセスがいいのではと個人的に思います

ログイン ユーザー登録
ようこそ ゲスト さん