サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
officetanaka.net
ここで解説する IFS関数 と SWITCH関数 は、Microsoft 365からインストールするProPlusで使えます。あるいは、永続ライセンス版でしたら、Excel 2019以降で使用可能です。 本稿の内容や、使い方のサンプルなどは、下記の動画でも解説しています。 また、本稿の最後に、追記もしてありますので、ぜひご覧ください。 条件分岐の動作 まず、昔からある IF関数 の動きを確認しましょう。 ○が1だったら、"田中"を表示します。そうでなかったら"×"を表示します。"田中"が表示されるのは、○が1のときだけです。"×"が表示されるのは、○が1ではないときです。2だろうが1024だろうが、"Excel"だろうが空欄だろうが何でも、とにかく1でなければ、すべて"×"です。これが IF関数 の動きです。このように「■なのか、そうでないのか」という値を「二値(にち)」と呼びます。最もよ
InsiderのExcelに、LAMBDA関数が追加されました。まだ、正式に実装されたわけではありませんが、食いつきの早いWebサイトでも紹介されています。そうした、"追加された"という情報をいち早く伝えているWebページなどをご覧になって「何やら、すごい関数が追加されたんだなぁ」と期待に胸を震わせている方がいらっしゃるかもしれませんので、このLAMBDA関数って、どういう関数なのかを解説します。ちなみに「ラムダ関数」と読みます。 セルの中で使う関数ではありません まず、初っぱなから、みなさんの期待を裏切るような事実をお伝えしますが、このLAMBDA関数は、SUM関数やVLOOKUP関数のようにセルの中に入力して使う関数ではありません。まずは、そこです。まぁ、実際には、セルの中に直接LAMBDA関数を入力しても、動くっちゃ動きますが、そんな使い方をする人は皆無でしょう。なぜなら、まったくメ
ListObjectでの特定 Range("A1").ListObjectがテーブル全体を表します。テーブル内の特定部位は、次のように指定します。 見出しを含むテーブル全体 Range("A1").ListObject.Range 今までセルを操作するマクロに慣れている方が、もっとも戸惑うのがこのRangeです。よろしいですか、ここは頑張って"考え方"を変えてください。セルを指し示すとき「Range("A1")」のように使うRangeと、ここで使うRangeはまったく意味が異なります。Range("A1").ListObject.RangeのRangeは、テーブル内の全セルを表します。したがって、全セル内の"何番目のセル"というのを、次のように表します。 Range("A1").ListObject.Range(3) Range("A1").ListObject.Range(6) ええっ!
ややこしい! まずは、衝撃的なお話から。Office 2016というのは、大きく分けて3種類あります。 ひとつは昔ながらの「DVDなどからインストール」する種類のOffice 2016です。企業内で使われている"ボリュームライセンス"というのも、このタイプの場合があります。ふたつめは「Office 365からインストール」するタイプのOffice 2016です。Office 365というのは、Microsoftが提供しているクラウドサービスの名称で、OneDriveが使えたり、メールアカウントを作れたり、SharePoitやFlowを使えたりします。そして、ExcelやWordなどの、いわゆる「オフィス製品」をインストールして使うこともできます。 さあ、ここからがややこしいのですけど。まず、Office 2016というのは、発売以来毎月機能拡張やバグの修正などが行われています。毎月です。よ
実務では、特定のシートだけを別ブックとして保存することが多いです。たとえば、Sheet1とSheet2があったとして。このSheet2の名前を"田中"に変え、"田中"シートだけを「田中.xlsx」として保存する。みたいな。 このとき、ほとんどの方が次のように考えます。 まずSheet2の名前を"田中"に変える 新しいブックを挿入する [田中]シートを、挿入した新しいブックにコピーする 新しいブックで、"田中"以外のシートを削除する 挿入したブックを"田中.xlsx"で保存する この考え方でマクロを作ってみましょう。こうなります。 Sub Sample1() Dim ws As Worksheet Sheets("Sheet2").Name = "田中" ''1. Workbooks.Add ''2. ThisWorkbook.Sheets("田中").Copy After:=ActiveW
これ、ほとんど知られていないのですけど、Excel 2016は"みんな大好き"VLOOKUP関数とMATCH関数の計算速度が、約400倍速くなりました。実際に速度を計測してみました。もうね、笑っちゃいますw 速度計測は、次のようにしました。まず、A列とB列に元データを作りました。10万件です。 この、セル範囲A2:B100001に対してVLOOKUPします。D列には、VLOOKUP関数で調べる"A-100000"を1万個入れてあります。ワークシートの再計算を"手動"にしてから、隣のE列(セル範囲E2:E10001)に「=VLOOKUP(D2,$A$2:$B$100001,2,FALSE)」的な数式を1万個入れます。もちろん、VLOOKUP関数の第1引数は、D2・D3・D4・・・となるようにしています。ちなみに、VLOOKUP関数の第4引数に"FALSE"を指定すると"完全一致"で表引きしま
VBAでは、うまくいきそうに見えて、実は失敗するケースがあります。たとえば、アクティブシートがSheet1のとき、次のコードを実行するとSheet2のセルB3が選択されます。あ、もちろん、Sheet2は存在するとします。 Sub Sample1() Sheets("Sheet2").Select Range("B3").Select End Sub また、アクティブシートではないシートのセルを、直接操作することもできます。アクティブシートがSheet2のとき、次のコードを実行すると、アクティブシートは移動せずに、Sheet1のセルC4に数値を入力できます。、 Sub Sample2() Sheets("Sheet1").Range("C4") = 123 End Sub Sample2のように、別シートのセルを直接操作できるのなら、次のように書いたとしても、正常に動作するような気がします。
本稿執筆時点で、最も最新のExcelは2016です。 前バージョンのExcel 2013に比べて、機能的にはほとんど変わっていません。ただひとつ、見た目的に大きく変化したところがあります。ブックで使用される標準のフォントが、今までの「MS Pゴシック」から「游ゴシック」になりました。 ちょっと「MS Pゴシック」と「游ゴシック」の違いをご紹介しましょう。 どちらが見やすいかは、それぞれの好みによりますので、何とも言えません。ただ、一般的に人は、変化を嫌います。今はまだ、それほどExcel 2016が普及していませんが、今後多くの現場にExcel 2016が導入されるようになると「何だよ~勝手にフォント変えるなよ~元に戻せよ~何やってんだよMS」みたいなことになるのは、火を見るよりも明らかです。なので、標準のフォントを「MS Pゴシック」にする方法をご紹介します。 ちなみに、たとえばExce
本稿で紹介する「テキストファイルの操作」は、UTF-8形式のテキストファイルを対象にしています。Shift-JIS形式のファイルを扱うときは、下記ページをご覧ください。 テキストファイルを操作する 正確には「UTF-8形式のファイル」ってのも、ちょっと変な表現なんですけどね。ファイルの形式じゃなくて、そこで使われている文字コードが"UTF-8"だよってことなんですが。まぁ、細かいことはいいとして。ここでは面倒なので「UTF-8形式のファイル」「Shift-JIS形式のファイル」という呼び方をします。 UTF-8の文字コードが記録されたテキストファイルを、上記「テキストファイルを操作する」で解説した方法で読み込むと、望んだ結果になりません。ちょっと、やってみましょう。 UTF-8の文字コードで書かれたデータを読み込むときは、ADO(ActiveX Data Objects)という仕組みを使い
本稿で紹介する「テキストファイルの操作」は、UTF-8形式のテキストファイルを対象にしています。Shift-JIS形式のファイルを扱うときは、下記ページをご覧ください。 テキストファイルを操作する 正確には「UTF-8形式のファイル」ってのも、ちょっと変な表現なんですけどね。ファイルの形式じゃなくて、そこで使われている文字コードが"UTF-8"だよってことなんですが。まぁ、細かいことはいいとして。ここでは面倒なので「UTF-8形式のファイル」「Shift-JIS形式のファイル」という呼び方をします。 UTF-8の文字コードでファイルに書き込むには、次のようにします。 Sub Sample1() Dim Target As String Target = "D:\Work\Sample.txt" With CreateObject("ADODB.Stream") .Charset = "UT
下図は超簡単な出納帳です。前日の残高に入金を加えて、出金を引いたのが新しい残高です。 計算式も簡単ですね。よくExcel入門とかで「お小遣い帳を作ってみよう」みたいなネタで登場します。まぁ、Excelの参照式を理解するには悪くないテーマだと思いますが、実際に使っていると困ったことがあります。たとえば、すでに入力したデータの途中に、セルを挿入するとどうなるでしょう。 挿入したいセル範囲を選択します。 Ctrl+Shift+[+]キーを押します。 挿入したセルにデータを入力します。ところが、下に移動したセルD5の数式は、よく見るとおかしいです。 こうした参照式は、セルの挿入や削除に弱いです。逆に、参照しているセルを削除すると・・・ エラーになっちゃいます。 表の途中でセルを挿入したり削除しても、常に同じ位置のセルを参照するには、少し工夫が必要です。INDIRECT関数でやる手もありますが、ここ
よく使う型 最もよく使われる型は、なんといっても長整数型(Long)と文字列型(String)でしょう。整数を格納する型は、長整数型(Long)のほかにInteger(整数型)もありますが、Integer(整数型)は最大で32,767までしか入りませんから、特別な事情がある場合を除いて、整数を入れる変数は長整数型(Long)で宣言すればいいでしょう。また、たとえば月を表す数値(1~12)のように、非常に小さい整数を格納する変数としてバイト型(Byte)を使っているケースをときおり見かけますが、これは相応しくありません。バイト型(Byte)は、バイナリデータという特別な値を格納するために用意された型です。もちろん、単純な数値を格納することも可能ですが、すごく変です。 整数を入れる変数 → 長整数型(Long) 文字列を入れる変数 → 文字列型(String) と覚えておきましょう。ほとんどの
大量のデータを絞り込むには、オートフィルタが便利です。ここでは、VBAからオートフィルタを使い倒すテクニックをご紹介します。なお、ボリュームがありますので、以下の項目にページを分けて解説します。なお、ここで解説するオートフィルタは、通常のワークシートに設定されているとします。テーブルでオートフィルタを操作するときは、また別の考え方が必要です。VBAでテーブルを扱う方法に関しては「VBAでテーブルの操作」をご覧ください。 書き方の基本 文字列で絞り込む 数値で絞り込む 日付で絞り込む 色で絞り込む 作業列で絞り込む 絞り込んだ結果をコピーする (←このページ) 絞り込んだ結果を集計する 絞り込んだ結果の行を操作する オートフィルタの状況を判定する 数式のエラーで絞り込む 既存の別シートへコピーする 下図のような表を例に解説します。 表はアクティブシートにあります。この表を「A列が"田中"であ
次のページ
このページを最初にブックマークしてみませんか?
『Office TANAKA』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く