excel_ossan's profile picture. 世の中のエクセルを正すために立ち上がったおっさん。

エクセルのおっさん

@excel_ossan

世の中のエクセルを正すために立ち上がったおっさん。

Закреплено

エクセルはクソ、なんていうやつもいるが、別に使うなとは言わん。見やすいし関数も便利だ。マクロもVBAも悪くない。でも使うなら正しく使え。エクセルがクソなんじゃなくて、使い方がクソなんだ。#エクセル #Excel


おっさんのエクセル技:シートを別ブックにコピーするには、シートタブで移動またはコピーをクリック、と思っていないか?それでも良いが別の方法もある。まずシートをマウスで左クリック、次にAlt+Tabでブックを切り替えて、Ctrlを押しながら左クリックを離す。個人的にはこちらの方が直感的。#Excel


おっさんのエクセル技:若者から質問で、A1~D1セルの4つの値を、E1~H1セルにランダムに並び替えて出す方法が知りたいとのこと。 発想としては、最終的にINDEX(A1:D1,重複のない1~4のランダム値)を使うことを考えよう。ランダム値は、RANDとRANKを使って解決できるぞ。答えは図をご覧あれ!#Excel

excel_ossan's tweet image. おっさんのエクセル技:若者から質問で、A1~D1セルの4つの値を、E1~H1セルにランダムに並び替えて出す方法が知りたいとのこと。
発想としては、最終的にINDEX(A1:D1,重複のない1~4のランダム値)を使うことを考えよう。ランダム値は、RANDとRANKを使って解決できるぞ。答えは図をご覧あれ!#Excel

おっさんのエクセル技:前回、クロス集計表をリストに変換するINDEX関数を紹介した。今回は、INDEX関数に入れるセル番地を自動生成する。 セル番地X(1,1,1,2,2,2,3...) INT{(ROW()-開始行)/繰り返し周期}+開始番号 セル番地Y(1,2,3,1,2,3,1...) MOD(ROW()-開始行,繰り返し周期)+開始番号 #Excel

excel_ossan's tweet image. おっさんのエクセル技:前回、クロス集計表をリストに変換するINDEX関数を紹介した。今回は、INDEX関数に入れるセル番地を自動生成する。

セル番地X(1,1,1,2,2,2,3...)
INT{(ROW()-開始行)/繰り返し周期}+開始番号

セル番地Y(1,2,3,1,2,3,1...)
MOD(ROW()-開始行,繰り返し周期)+開始番号
#Excel

おっさんのエクセル技:前回紹介した通り、リスト形式はピボットにでき、クロス集計表はできない。だが現実にはクロス集計表が横行しており、リスト形式への変換が多発する。おすすめの方法はINDEX関数だ。クロス集計表全体を配列に指定して、行と列を変数で引っ張れば、ミスなく変換できるぞ。#Excel

excel_ossan's tweet image. おっさんのエクセル技:前回紹介した通り、リスト形式はピボットにでき、クロス集計表はできない。だが現実にはクロス集計表が横行しており、リスト形式への変換が多発する。おすすめの方法はINDEX関数だ。クロス集計表全体を配列に指定して、行と列を変数で引っ張れば、ミスなく変換できるぞ。#Excel

本日のクソエクセル:店舗ごとの日次売上データがあると若者が言うので、ピボットで月次集計を依頼した。すると、ピボットが思い通りの形にならないと言う。元データを見ると、日付と各店舗の売上が一行に並べられている。いいか、ピボットにしたければ、一行に1つの店舗の売上だけ書いてくれ。#Excel

excel_ossan's tweet image. 本日のクソエクセル:店舗ごとの日次売上データがあると若者が言うので、ピボットで月次集計を依頼した。すると、ピボットが思い通りの形にならないと言う。元データを見ると、日付と各店舗の売上が一行に並べられている。いいか、ピボットにしたければ、一行に1つの店舗の売上だけ書いてくれ。#Excel

おっさんのスプレッドシート技:エクセルとスプシで、フィルタの違いにハマった件。表からある文字を含むデータを抽出する時、エクセルではフィルタの検索枠に文字を入れる。が、スプシでこれは機能しない。エクセルは部分一致、スプシは完全一致だからだ。スプシは条件指定用の検索枠がある。#Excel


おっさんのエクセル技:VBAを使わず、ボタンで画面を動かす方法の紹介、最終回!今回はボタンで画像を切り替える。まずセルに画像を置き、リンクされた図としてコピペ。次に名前定義を作ってオプションボタンと連動させ、リンク先をこの名前に書き換える。簡易なデモやモックアップに使えるぞ。#Excel


おっさんのエクセル技:前回に続き、VBAを使わず、ボタンで画面を動かす方法の紹介。今回はグラフの形を動的に変えよう。まずスピンボタンを挿入し、リンクしたセルの値が増減するようにする。次に、このセルを式の係数にしてグラフを作る。プレゼンの時に、係数の変化の影響を可視化できるぞ。#Excel


おっさんのエクセル技:VBA要らず!ボタン1つで、条件付き書式のオン/オフを切り替える技を紹介する。まず開発タブから、チェックボックスを挿入。次にコントロールの書式設定で、リンクするセルを選ぶ。後は条件付き書式を、=AND(通常の条件式,リンクしたセル)でOK。プレゼンの時に便利だぞ。#Excel


若者指導:広告出稿のプランをエクセルで収支比較してくれと若者に頼んだら、リーチ数・反応率・成約数・単価…と並んだ表が出てきた。これは作業者の思考順である。依頼者がまず知りたいのは、いくら掛けて、いくら売り上げるかだ。先頭に想定売上・費用を書いて、積算根拠は後に並べてくれ。#Excel

excel_ossan's tweet image. 若者指導:広告出稿のプランをエクセルで収支比較してくれと若者に頼んだら、リーチ数・反応率・成約数・単価…と並んだ表が出てきた。これは作業者の思考順である。依頼者がまず知りたいのは、いくら掛けて、いくら売り上げるかだ。先頭に想定売上・費用を書いて、積算根拠は後に並べてくれ。#Excel

ガチVBAトーク:小1時間ハマったので教訓。Dirは二重に使えない。例えば以下。 myFile = Dir(folderA) …① Do While myFile <> "" myFile = Dir() …② Loop ①と②の間にサブルーチンなどでついDir(folderB)を書くと、②のDirは元のfolderAではなく、folderBを参照してしまう。#Excel #エクセル

excel_ossan's tweet image. ガチVBAトーク:小1時間ハマったので教訓。Dirは二重に使えない。例えば以下。
myFile = Dir(folderA) …①
Do While myFile &amp;lt;&amp;gt; &quot;&quot;
 myFile = Dir() …②
Loop
①と②の間にサブルーチンなどでついDir(folderB)を書くと、②のDirは元のfolderAではなく、folderBを参照してしまう。#Excel #エクセル

ガチVBAトーク:Select Case文を書く時、Case節は断然インデントしない派だ。インデントが浅い方がシンプルだからだ。インデントする派からは、Select~End Selectが見やすいと反論を頂くこともある。だがIf文でElseIf節はインデントしないはず。Case節も同じ扱いだと思うがいかが。#Excel #エクセル

excel_ossan's tweet image. ガチVBAトーク:Select Case文を書く時、Case節は断然インデントしない派だ。インデントが浅い方がシンプルだからだ。インデントする派からは、Select~End Selectが見やすいと反論を頂くこともある。だがIf文でElseIf節はインデントしないはず。Case節も同じ扱いだと思うがいかが。#Excel #エクセル

若者指導:エクセルの単純作業が何件以上なら、手作業せずにVBAを組むか。私の基準は、ミスなく手作業できる自信がなくなる時。手作業1件当たりのミス発生率が1%なら、N件でミスを含む可能性はグラフの通り1-99%^N。30件でも約25%=4回に1回はミスが出るので、個人的にはこの辺からVBAを組む。#Excel

excel_ossan's tweet image. 若者指導:エクセルの単純作業が何件以上なら、手作業せずにVBAを組むか。私の基準は、ミスなく手作業できる自信がなくなる時。手作業1件当たりのミス発生率が1%なら、N件でミスを含む可能性はグラフの通り1-99%^N。30件でも約25%=4回に1回はミスが出るので、個人的にはこの辺からVBAを組む。#Excel

本日のクソエクセル:若者がオートフィルタの並び替え機能を使って、表がグチャグチャになったと言う。哀れな犠牲者を増やさないために原因を解説しよう。いいか、フィルタで並び替わるのは、フィルタがかかっている列だけだ。フィルタの設定後に足した列は、対象外なので並び変わらないぞ。#Excel


本日のクソエクセル:若者にある商品の日次売り上げをグラフにするよう頼んだら、棒グラフで提出してきた。あのな、同じものの時系列変化を表す時は、傾きが見やすいように線グラフを使ってくれ。棒グラフを使うのは、支店別売上みたいに、異なるものの一時点における差を見やすくしたい時だ。#Excel

excel_ossan's tweet image. 本日のクソエクセル:若者にある商品の日次売り上げをグラフにするよう頼んだら、棒グラフで提出してきた。あのな、同じものの時系列変化を表す時は、傾きが見やすいように線グラフを使ってくれ。棒グラフを使うのは、支店別売上みたいに、異なるものの一時点における差を見やすくしたい時だ。#Excel

本日のクソエクエル:若者に社員の資格保有状況を表にしてもらったら、田中さんの保有資格は「A,B」、鈴木さんの保有資格は「A;D」と書かれてきた。百歩譲って正規化してないのは許す。だがせめてセパレーター(区切り文字)は統一してくれ。関数なりVBAなりで、後で機械的に分解できないだろ。#Excel

excel_ossan's tweet image. 本日のクソエクエル:若者に社員の資格保有状況を表にしてもらったら、田中さんの保有資格は「A,B」、鈴木さんの保有資格は「A;D」と書かれてきた。百歩譲って正規化してないのは許す。だがせめてセパレーター(区切り文字)は統一してくれ。関数なりVBAなりで、後で機械的に分解できないだろ。#Excel

おっさんのエクセル技:前回、表には入力列と集計列があることを説明した。今回は集計列全体に、素早くかつ確実に同じ数式を入れるテクニックを紹介する。まず、数式を入れる範囲を選択する。次に、選択範囲の先頭セルに数式を入力。確定する時にCtrl+Enterを押すと、範囲全体に数式が入るぞ。#Excel


おっさんのエクセル技:表の列は、入力列と集計列に明確に分けるべし。入力列は手打ちでデータを入力し、集計列は入力列のデータを関数で加工する。つまり入力列は関数を書かないし、集計列は手打ち入力しない。集計列は列全体を灰色で塗ると、上から関数をコピペすべきことが分かりやすいぞ。#Excel

excel_ossan's tweet image. おっさんのエクセル技:表の列は、入力列と集計列に明確に分けるべし。入力列は手打ちでデータを入力し、集計列は入力列のデータを関数で加工する。つまり入力列は関数を書かないし、集計列は手打ち入力しない。集計列は列全体を灰色で塗ると、上から関数をコピペすべきことが分かりやすいぞ。#Excel

若者指導:エクセルVBAを初めての若者に教える時、プログラミングは料理だと思えと伝えてる。まず作るメニューと材料を決める(要件定義)。次に作り方を考えて(設計)、それから包丁を握る(実装)。レシピ(要件定義と実装)を頭に入れずに、調理(実装)だけ上手くなるはずがない。#Excel #VBA

excel_ossan's tweet image. 若者指導:エクセルVBAを初めての若者に教える時、プログラミングは料理だと思えと伝えてる。まず作るメニューと材料を決める(要件定義)。次に作り方を考えて(設計)、それから包丁を握る(実装)。レシピ(要件定義と実装)を頭に入れずに、調理(実装)だけ上手くなるはずがない。#Excel #VBA

若者指導:エクセルVBAを初めての若者に教える時、要件定義ができてもまだコードは書かせない。入力から出力に至る過程を、日本語で考えて書かせる。①新しいシートを作る ②シート名をA1セルの値にする ③1と2をA2~A3セルまで繰り返す、みたいな感じ。大事なのは実装じゃなくて設計だ。#Excel #VBA

excel_ossan's tweet image. 若者指導:エクセルVBAを初めての若者に教える時、要件定義ができてもまだコードは書かせない。入力から出力に至る過程を、日本語で考えて書かせる。①新しいシートを作る ②シート名をA1セルの値にする ③1と2をA2~A3セルまで繰り返す、みたいな感じ。大事なのは実装じゃなくて設計だ。#Excel #VBA

Loading...

Something went wrong.


Something went wrong.