🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →

Excel AI Blog: VBA Tutorials, Formula Tips & Automation Guides

Expert guides on Excel formulas, VBA automation, data processing, and AI-powered productivity. Learn to master Excel with AI.

ExcelのAVERAGE関数 — 空白とゼロで平均が変わる理由

ExcelのAVERAGE関数 — 空白とゼロで平均が変わる理由

ExcelのAVERAGEは合計÷個数ですが、対象は見つけた数値だけ。空白と文字列は飛ばし、本物の0は数えます。だから「売上なし」を0で記録するか空白のままにするかで、同じデータの平均が静かに変わり、数式は何も警告しません。空白とゼロの罠、AVERAGEAがほぼ役に立たない理由、そして「平均の平均」が間違った問いになる場面を解説します。

Henry
Excelの加重平均 — SUMPRODUCT ÷ SUM(そして「平均の平均」が嘘をつく理由)

Excelの加重平均 — SUMPRODUCT ÷ SUM(そして「平均の平均」が嘘をつく理由)

Excelに加重平均の専用関数(WEIGHTEDAVG)はなく、正しい加重平均は =SUMPRODUCT(values, weights)/SUM(weights) です。大事なのは数式そのものではなく、それが直す誤り。規模の違うグループを要約した数字を素のAVERAGEにかけると全グループが等しい重みになり、注文3件の地域が300件の地域と同じ発言権を持ってしまいます。重みが影響力を再配分する考え方、SUM(weights)で割る理由、重みが1のときの短縮形、GPA・ポートフォリオ・混合単価の例、そして条件の付け方を解説します。

Henry
Excel GEOMEAN・TRIMMEAN・HARMEAN — 平均が嘘をつくときの平均たち

Excel GEOMEAN・TRIMMEAN・HARMEAN — 平均が嘘をつくときの平均たち

素のAVERAGEが間違った、あるいは誤解を招く答えを出す場面のための、3つの専門的な平均。GEOMEANは成長率とリターンのための正しい平均で、+50%の年と−50%の年の平均は0%になりません。TRIMMEANは平均する前に極端な高値と安値を落とします——オリンピックの採点と同じやり方です。HARMEANは速度やPERのような割合のための正しい平均です。それぞれがどの嘘を直すか、本当のCAGRを出すGEOMEAN(1+r)−1のパターン、3つの平均が常に調和≤幾何≤算術に並ぶ理由、そして#NUM!の罠を解説します。

Henry
Excel PRODUCT 関数 — 範囲まるごとを掛け合わせる(そして単なる * ではない理由)

Excel PRODUCT 関数 — 範囲まるごとを掛け合わせる(そして単なる * ではない理由)

Excel の PRODUCT 関数は範囲を 1 回の呼び出しで掛け合わせますが、* 演算子ではなくこれを選ぶ本当の理由は、文字列と空白セルの扱いにあります。PRODUCT はそれらを読み飛ばす一方、* は文字列でエラーになるか、空セル 1 つで結果を静かに 0 にしてしまいます。考え方(PRODUCT は SUM の掛け算版)、成長率を合成する =PRODUCT(1+range) のテクニック、PRODUCT と SUMPRODUCT の違い、そして * のチェーンのほうが実際に適している場面を解説します。

Henry
Excel の階乗(FACT)— n!・FACTDOUBLE・MULTINOMIAL(そして 171! のオーバーフロー)

Excel の階乗(FACT)— n!・FACTDOUBLE・MULTINOMIAL(そして 171! のオーバーフロー)

Excel の FACT 関数は階乗を計算します — =FACT(5) は 5×4×3×2×1 = 120 です — が、まず理解すべきは階乗が何を意味するかです。それは n 個の異なるものを並べる方法の数です。FACT(0) が 1 になる理由、FACT(171) が #NUM! を返す理由(Excel で計算できる最大の階乗は 170!)、FACTDOUBLE と MULTINOMIAL の違い、そして FACT があらゆる組み合わせ・順列関数の土台となる最小単位である理由を解説します。

Henry
Excel COMBIN・PERMUT — 組み合わせと順列(順番は関係する?)

Excel COMBIN・PERMUT — 組み合わせと順列(順番は関係する?)

Excel の COMBIN と PERMUT は、どちらも n 個から k 個を選ぶ方法が何通りあるかを数えます — 違いは順番が関係するかどうかです。PERMUT は順序付きの並べ方(表彰台、暗証番号)を数え、COMBIN は順序なしの選び方(宝くじ、委員会)を数え、常により小さい数になります。毎回正しい関数を選ぶ 2×2 の表(順序 × 重複 → PERMUT / PERMUTATIONA / COMBIN / COMBINA)、宝くじの確率の例 =COMBIN(49,6)、そして選び間違えてもエラーが出ず、k! 倍だけずれた数が返る理由を解説します。

Henry
Excel TIME・HOUR・MINUTE・SECOND — 時刻の裏にある小数を読み取り、組み立てる

Excel TIME・HOUR・MINUTE・SECOND — 時刻の裏にある小数を読み取り、組み立てる

Excel の時刻は、1 日(24 時間)を 1 とした小数です —— 6:00 AM は文字どおり 0.25。HOUR・MINUTE・SECOND はその小数から各パーツを読み取り、TIME は数値から小数を組み立てて深夜 0 時をまたぐと静かに折り返します。TIMEVALUE はテキストの時刻を小数に解析します。基本となる考え方、30 時間の経過時間で HOUR が 30 ではなく 6 を返す理由、TIME(25,0,0) が 1:00 AM になる仕組み、90 分の足し方、そして代わりに算術で計算すべき場面を解説します。

Henry
Excel で時刻を小数の時間に変換する —— ×24 のコツ(と労働時間の計算)

Excel で時刻を小数の時間に変換する —— ×24 のコツ(と労働時間の計算)

Excel の時刻は 1 日を 1 とした小数なので、8:15 は 8.25 ではなく 0.34375 として格納されます。小数の時間にするには 24 を掛けます —— 時間関連で最も検索される数式です。時間 × 時給が 24 倍小さく出る理由、(終了 − 開始)× 24 で労働時間が求まる仕組み、深夜 0 時をまたぐ夜勤のための MOD のコツ、無給休憩の差し引き、そして請求対象時間を 15 分単位に丸める方法を解説します。

Henry
Excel で 24 時間を超える時間を合計する —— 合計がリセットされる理由(と [h]:mm での解決)

Excel で 24 時間を超える時間を合計する —— 合計がリセットされる理由(と [h]:mm での解決)

時刻の列を合計したのに、合計が 25:30 ではなく 1:30 と出る —— SUM は正しく、書式が嘘をついています。Excel の既定の h:mm はまる 1 日を差し引いた余りしか表示しないので、24 時間で折り返します。解決策はユーザー定義書式 [h]:mm で、角かっこが Excel に折り返さず累積するよう伝えます。負の時刻が ####### になる理由、小数の合計の求め方、そして時刻書式のチートシートを解説します。

Henry
Excel SIN・COS・TAN — =SIN(30) が 0.5 にならない理由(ラジアンの落とし穴)

Excel SIN・COS・TAN — =SIN(30) が 0.5 にならない理由(ラジアンの落とし穴)

Excel の SIN・COS・TAN は角度をラジアンで測り、度ではありません。だから =SIN(30) は 0.5 ではなく -0.988 を返し、しかも Excel はエラーとして知らせてくれません。間違った三角関数の答えをすべて直すたった 1 つの考え方(度は RADIANS で包む)、TAN が 90° 付近でエラーにならず巨大な数に発散する理由、そしてシート全体で角度の単位を統一する方法を解説します。

Henry
Excel RADIANS・DEGREES・PI — 角度の単位変換(そして PI() が関数である理由)

Excel RADIANS・DEGREES・PI — 角度の単位変換(そして PI() が関数である理由)

RADIANS と DEGREES は、あなたが考える角度の単位(度)と Excel の三角関数が要求する単位(ラジアン)を橋渡しします。どちらの変換器をどこに置くか(SIN/COS/TAN の前に RADIANS、逆関数の後に DEGREES)、PI() がカッコを必要とし、省くと #NAME? になる理由、そして 3.14159 を決して直書きしてはいけない理由を解説します。

Henry
Excel ATAN・ATAN2 — 逆正接(アークタンジェント)と X,Y から求める角度

Excel ATAN・ATAN2 — 逆正接(アークタンジェント)と X,Y から求める角度

逆三角関数 ASIN・ACOS・ATAN・ATAN2 は比を角度に戻します — そして角度をラジアンで返すので、DEGREES で包みます。ATAN が象限を判別できない理由、ATAN2 がそれをどう解決するか、Excel の ATAN2(x, y) があらゆるプログラミング言語と引数の順序が逆になっている有名な落とし穴、そして ASIN/ACOS で -1〜1 の外を渡すと #NUM! になる理由を解説します。

Henry
ExcelのPMT関数 — ローンと住宅ローンの返済額を計算する(元金・利息の内訳も)

ExcelのPMT関数 — ローンと住宅ローンの返済額を計算する(元金・利息の内訳も)

PMT は、ローンをちょうど返し切る一定額の返済額を1つ求めます——そしてわざと負の数を返します。符号の規約(出ていくお金は負)、最大のミス(年利なのに月次の期間を渡す)、5つの引数、IPMT と PPMT が各回の返済を利息と元金に分ける仕組み、そして返済予定表の作り方を解説します。

Henry
ExcelのFV・PV関数 — 将来価値・現在価値と「5の法則」

ExcelのFV・PV関数 — 将来価値・現在価値と「5の法則」

FV と PV は、PMT と同じ貨幣の時間価値の方程式を、別の未知数について解いたものです。変数は5つ——rate、nper、pmt、pv、fv——で、未知数ごとに関数が1つ:どれか4つがわかれば5つ目が求まります。積立プランの将来価値、支払いの流れの現在価値、同じ符号の規約(入れるお金は負)、期首払い年金のための type 引数、そして RATE と NPER を使う場面を解説します。

Henry
ExcelのNPV・IRR — 割引キャッシュフローと収益率

ExcelのNPV・IRR — 割引キャッシュフローと収益率

NPV と IRR は、PMT や FV では扱えないキャッシュフロー——現実のプロジェクトの、でこぼこで不規則なもの——を扱います。最大のミス、そして本記事を読む理由のすべて:Excel の NPV は最初の値が1期先に届くと仮定するので、時点ゼロの投資は NPV の呼び出しの外に置かなければなりません。正しい NPV、IRR とそれが #NUM! を返す理由、複数 IRR の罠、そして XNPV と XIRR(実際の日付)こそアナリストが本当に使うものである理由を解説します。

Henry
ExcelのDSUM・DCOUNT関数 — 条件表に一致した行を合計・カウントする

ExcelのDSUM・DCOUNT関数 — 条件表に一致した行を合計・カウントする

DSUM と DCOUNT は「条件に一致した行を合計(またはカウント)する」に答えますが、条件は数式の中ではなくシート上の小さな表として書きます。3つの引数、database に見出し行を含めなければならない理由、条件範囲が AND と OR を表す仕組み、DCOUNT が文字列を無視する理由(文字列も数えるなら DCOUNTA)、そして目に見える条件ブロックが SUMIFS に勝る場面を解説します。

Henry
ExcelのDGET関数 — レコードを1件だけ取り出し、なければ堂々とエラーにする

ExcelのDGET関数 — レコードを1件だけ取り出し、なければ堂々とエラーにする

DGET は条件範囲を使ってテーブルから1つの値を取り出します——その真骨頂は、わざとエラーを出すこと:一致が複数あれば #NUM!、1つもなければ #VALUE!。これはバグではなく、VLOOKUP が黙って飛ばす一意性チェックが組み込まれているのです。3つの引数、補助列なしの複数条件検索、そして DGET が XLOOKUP に勝つ場面(と勝たない場面)を解説します。

Henry
Excelのデータベース関数 — DAVERAGE・DMAX・DMIN と条件範囲を使いこなす

Excelのデータベース関数 — DAVERAGE・DMAX・DMIN と条件範囲を使いこなす

12個の D関数——DSUM、DCOUNT、DGET、DAVERAGE、DMAX、DMIN ほか——はすべて、1つの構文と1つのスキル、すなわち条件範囲を共有します。条件ブロックが AND と OR を表す仕組み、1つのフィールドに範囲を掛けるとなぜ見出しが2回要るのか、数式条件の使い方(成否を分ける見出しのルール)、先頭一致の過剰マッチという罠、そして D関数・SUMIFS・FILTER の使い分けを解説します。

Henry
ExcelのGROUPBY関数 — 1つの数式でデータをグループ集計する

ExcelのGROUPBY関数 — 1つの数式でデータをグループ集計する

GROUPBY(行フィールド, 値, 関数) は行をグループ化し、1つのスピルする数式で集計します——UNIQUE + SUMIFS パターンの、そして多くのレポートではピボットテーブルそのものの、現代的な置き換えです。誰もがはまる落とし穴は、関数を名前で渡すこと(SUM() ではなく SUM)——グループごとに適用されるラムダだからです。3つの必須引数、ピボットテーブルが古びる場面でもなぜライブ再計算するのか、総計や集計値での並べ替えの付け方、そして必要なバージョンを解説します。

Henry
ExcelのPIVOTBY関数 — 数式でピボットテーブルを作る

ExcelのPIVOTBY関数 — 数式でピボットテーブルを作る

PIVOTBY(行フィールド, 列フィールド, 値, 関数) は、2つ目の次元を加えた GROUPBY です——データを行×列のグリッドにクロス集計し、更新不要でライブ再計算する1つのスピル数式として表したピボットテーブルです。4つの必須引数、行フィールドと列フィールドが入れ替え可能でない理由、両軸に合計を加える方法、そして従来のピボットテーブルとの本当のトレードオフ(生きていて参照できるが、ドラッグ操作の対話性はない)を解説します。Excel 365 が必要です。

Henry
GROUPBY・PIVOTBY 応用編 — 構成比、複数指標、カスタム集計

GROUPBY・PIVOTBY 応用編 — 構成比、複数指標、カスタム集計

GROUPBY と PIVOTBY が共有する省略可能な引数こそ、ピボットテーブルを置き換えるだけでなく上回り始める場所です:PERCENTOF で構成比を一語で、複数の値列で複数の指標を一度に、関数スロットの LAMBDA でピボットテーブルにはできない加重平均を、そして filter_array で欲しい行だけを集計。名前だけで渡す関数(イータ簡約)の文法、構成比の落とし穴、そしてどの引数が間違っているかを教えるエラー(#CALC!、#FIELD!、#SPILL!)を解説します。

Henry
ExcelのROWとCOLUMN関数 — セルの「値」ではなく「位置」を取得する

ExcelのROWとCOLUMN関数 — セルの「値」ではなく「位置」を取得する

ROW([参照]) は行番号を、COLUMN([参照]) は列番号を返します — セルの「位置」であって、中身の「値」ではありません。引数を省略すると、それぞれ数式が入っているセルの座標を返します。「セルがどこにあるか」と「セルに何が入っているか」を切り分ける考え方の軸、ROW() からアンカーを引いて作る自己修復型の連番、MOD(ROW(),n) が縞模様やグループ分けを動かす仕組み、そして COLUMN の「数値か列文字か」という落とし穴を解説します。

Henry
ExcelのROWSとCOLUMNS関数 — 範囲の「位置」ではなく「サイズ」を数える

ExcelのROWSとCOLUMNS関数 — 範囲の「位置」ではなく「サイズ」を数える

ROWS(配列) は範囲の行数を、COLUMNS(配列) は列数を返します — 位置ではなく、サイズです。ROWS(A1:A10) は 10、COLUMNS(A1:C1) は 3 です。複数形が ROW や COLUMN とどう違うか、COLUMNS() で自動調整される VLOOKUP の列インデックスという決定的な使い方、FILTER が返した行数の数え方、そして ROWS(A:A) が 1,048,576 になる「列全体」の落とし穴を解説します。

Henry
Excel HYPERLINK 関数 — 自分で更新されるクリック可能なリンクを作る

Excel HYPERLINK 関数 — 自分で更新されるクリック可能なリンクを作る

HYPERLINK(link_location, [friendly_name]) は、クリック可能なジャンプ — セル、シート、ファイル、Web ページ、メールへ — を作る数式で、その飛び先は他の数式で計算できます。静的なリンクを作る「挿入 > リンク」メニューとは別物です。ブック内をジャンプする # プレフィックス、ADDRESS と MATCH による動的な飛び先、なぜこのリンクが値を取ってくるのではなくクリックで移動するのか、そしてなぜ friendly_name を常に渡すべきかを解説します。

Henry
Excel RAND & RANDBETWEEN — 乱数を作る(そして勝手に変わるのを止める)

Excel RAND & RANDBETWEEN — 乱数を作る(そして勝手に変わるのを止める)

RAND() は 0 以上 1 未満のランダムな小数を返し、RANDBETWEEN(bottom, top) は両端を含む範囲のランダムな整数を返します。この 2 つはどちらも揮発性で、編集のたびに振り直されるという考え方、それが「乱数が勝手に変わる」ナンバーワンの落とし穴である理由、形式を選択して貼り付けで固定する方法、RANDBETWEEN が値を繰り返す理由、そしてランダムな小数を作る =a+(b-a)*RAND() の数式を解説します。

Henry
Excel RANDARRAY — 数式 1 本で乱数のグリッドまるごと

Excel RANDARRAY — 数式 1 本で乱数のグリッドまるごと

RANDARRAY([rows],[cols],[min],[max],[whole_number]) は数式 1 本で乱数のブロックをスピルします — RAND と RANDBETWEEN を統合して強化したものです。whole_number フラグの既定が FALSE である理由(だから整数を指定しない限り小数になる)、依然として揮発性である理由、いつ #SPILL! を投げるのか、そして SORTBY(list, RANDARRAY(...)) のシャッフル技を解説します。

Henry
Excel で行をランダムに選ぶ・抽出する・シャッフルする方法

Excel で行をランダムに選ぶ・抽出する・シャッフルする方法

Excel のあらゆるランダム抽出の裏にある唯一の技:各行にランダムな数を付け、その数で並べ替えるだけです。最新の 1 行 TAKE(SORTBY(data, RANDARRAY(...)), n)、古典的な RAND 補助列の方式、標本を台無しにする復元抽出と非復元抽出の決定的な違い、そして並べ替える前にランダム列を固定しなければならない理由を解説します。

Henry
Excel POWER & SQRT — べき乗・累乗根と演算子優先順位の落とし穴

Excel POWER & SQRT — べき乗・累乗根と演算子優先順位の落とし穴

POWER(x,n) と ^ 演算子は数値をべき乗し、SQRT(x) は ^(1/2) すなわち平方根の専用ショートカットです。累乗根は分数の指数にすぎないという考え方、=-3^2 が 9 を返し =27^1/3 が 9 を返す理由(どちらも優先順位の落とし穴)、負数の SQRT が #NUM! になる理由、そして POWER 一本で CAGR を求める方法を解説します。

Henry
Excel ABS & SIGN — 絶対値・大きさ、そして捨て去る符号

Excel ABS & SIGN — 絶対値・大きさ、そして捨て去る符号

ABS(x) は数値の大きさ(0 からの距離)を返し、SIGN(x) はその向きだけを -1・0・+1 で返します。あらゆる数値は大きさ × 向きだという考え方、許容差チェックに A-B ではなく ABS(A-B) が必要な理由、恒等式 x = SIGN(x)*ABS(x)、そして ABS は向きが本当にどうでもよいときのための道具であって、予期しなかった符号に貼る絆創膏ではない理由を解説します。

Henry
Excel EXP, LN & LOG — 対数・成長率、そして「既定の底」の落とし穴

Excel EXP, LN & LOG — 対数・成長率、そして「既定の底」の落とし穴

EXP(x) は e をべき乗し、LN・LOG10・LOG はその逆関数です。対数とはべき乗を逆向きに走らせたもの(指数を求める操作)だという考え方、底を省いた LOG(x) が自然対数ではなく底 10 になる理由、LN(0) と負数の LOG が #NUM! になる理由、そしてビジネスで実際に必要な 2 つの数式 — 幾何平均 = EXP(AVERAGE(LN)) と目標到達までの期間 = LN(target)/LN(rate) — を解説します。

Henry
ExcelのFORMULATEXT & ISFORMULA — セル内の数式を読み取り、監査する

ExcelのFORMULATEXT & ISFORMULA — セル内の数式を読み取り、監査する

FORMULATEXT(reference) はセルの数式をテキストとして返し、ISFORMULA(reference) はセルが数式を保持していれば TRUE を返します。考え方の軸——これらはシートを監査する関数であって、計算はしない——、数式でないセルで返る #N/A、すべての数式セルを強調表示する条件付き書式のテクニック、そして「数式の表示」の代わりにこれらを使うべき場面を解説します。

Henry
ExcelのCELL関数 — セルのアドレス・書式・種類・ファイル名を取得する

ExcelのCELL関数 — セルのアドレス・書式・種類・ファイル名を取得する

CELL(info_type, [reference]) はセルの値ではなく、そのメタデータ——アドレス、行、列、表示形式、内容の種類、ブックのファイル名——を返します。考え方の軸、なぜ info_type がキーワード文字列なのか、いまも唯一無二に得意な仕事(ファイルパスとシート名の取得)、そして結果が誤って見える再計算の罠を解説します。

Henry
ExcelのTYPE & N関数 — 値が本当は何なのかを診断する

ExcelのTYPE & N関数 — 値が本当は何なのかを診断する

TYPE(value) はセルが保持する値の種類をコードで返します——1 数値、2 テキスト、4 論理値、16 エラー、64 配列——、N(value) は値を数値に強制変換します。考え方の軸、TYPE が「文字列として保存された数値」をどう突き止めるか、なぜ N は何を渡してもエラーにせず 0 を返すのか、そして数式の中にコメントを埋め込む古典的な N() のテクニックを解説します。

Henry
ExcelのSWITCH関数 — ネストしたIFを平坦で読みやすい数式に置き換える

ExcelのSWITCH関数 — ネストしたIFを平坦で読みやすい数式に置き換える

SWITCH は1つの式を「完全一致する値のリスト」と照合し、最初に一致した結果を返します:=SWITCH(expr, val1, res1, val2, res2, default)。考え方の軸、なぜ完全一致だけなのか(そしてそれが SWITCH と IFS の境界線である理由)、default 引数を忘れると #N/A が返る罠、範囲を扱う SWITCH(TRUE()) のテクニック、そしてネストした IF の代わりに使うべき場面を解説します。

Henry
ExcelのCHOOSE関数 — 位置でN番目の項目を選ぶ(そして隠れた必殺技)

ExcelのCHOOSE関数 — 位置でN番目の項目を選ぶ(そして隠れた必殺技)

CHOOSE はリストから位置でN番目の項目を返します:=CHOOSE(index_num, value1, value2, …)。考え方の軸、なぜ一致ではなく位置で選ぶのか(CHOOSE と SWITCH の境界線)、インデックスが範囲外のときに出る #VALUE!、そして使われていない必殺技——範囲まるごとを返してシナリオを切り替えたり、左方向ルックアップのために列を並べ替えたりする使い方——を解説します。

Henry
ExcelのMAXIFS & MINIFS関数 — 配列数式なしの条件付き最大・最小

ExcelのMAXIFS & MINIFS関数 — 配列数式なしの条件付き最大・最小

MAXIFS と MINIFS は、1つ以上の条件を満たす値のうち最大・最小のものを返します:=MAXIFS(max_range, criteria_range1, criteria1, …)。考え方の軸、SUMIF ユーザーがつまずく引数の順序、なぜ古い {=MAX(IF())} 配列数式を置き換えるのか、そして一致する行がないときに返る「静かな 0」の罠を解説します。

Henry
ExcelのCOUNT・COUNTA・COUNTBLANK — 数値・非空白・空白セルを数える

ExcelのCOUNT・COUNTA・COUNTBLANK — 数値・非空白・空白セルを数える

COUNTは数値だけを、COUNTAは空でないセルすべてを、COUNTBLANKは空のセルを数えます——1つの「いくつ?」に見えて、実は3つの別々の問いに3つの関数が答えます。テキストのIDが並ぶ列に =COUNT を使うと0が返る理由、空文字列を返す数式までCOUNTAが数えてしまう理由、そしてCOUNTAとCOUNTBLANKの合計が必ずしもセル総数と一致しない理由を解説します。

Henry
ExcelのCOUNTIF関数 — 1つの条件に合うセルを数える(そして条件の書き方の罠)

ExcelのCOUNTIF関数 — 1つの条件に合うセルを数える(そして条件の書き方の罠)

COUNTIFは1つの条件を満たすセルを数えます——`=COUNTIF(範囲, 条件)`——そして条件とは、テキストで書いた小さなテストです。演算子を引用符の中に入れる理由、& でセルの値をしきい値にする方法、テキスト照合のワイルドカード、長い数値での15桁の罠、そしてCOUNTIFSへ切り替えるべきタイミングを解説します。

Henry
Excelでユニークな値を数える方法 — 今どきのやり方と昔ながらの式

Excelでユニークな値を数える方法 — 今どきのやり方と昔ながらの式

Excelには COUNTUNIQUE 関数がないため、重複を除いた値を数える方法は2つに分かれます。今どき(365/2021)の `=COUNTA(UNIQUE(範囲))` と、古いバージョン向けの昔ながらの `=SUMPRODUCT(1/COUNTIF(範囲,範囲))` です。空白が数を1増やす理由、FILTER で空白を除く方法、昔ながらの式が #DIV/0! を出す理由、そして重複を除いた値と1回だけ現れる値の違いを解説します。

Henry
Excel の TRIM と CLEAN — 照合を狂わせる「見えないゴミ」を取り除く

Excel の TRIM と CLEAN — 照合を狂わせる「見えないゴミ」を取り除く

TRIM と CLEAN はどちらも取り込んだテキストから見えないゴミを取り除きますが、対象が違います。TRIM は余分なスペース(ASCII 32)を、CLEAN は印刷されない制御文字(0〜31)を削除します。どちらも Web や PDF の貼り付けで紛れ込む改行なしスペース CHAR(160) は消せません。これが『TRIM が効かない』最大の原因です。考え方と、すべてを一括で片づける唯一の数式を解説します。

Henry
Excel の UPPER・LOWER・PROPER — データを壊さずに大文字小文字を変える

Excel の UPPER・LOWER・PROPER — データを壊さずに大文字小文字を変える

UPPER・LOWER・PROPER はテキストの大文字小文字を変えますが、Excel における大文字小文字は表示やエクスポートの問題であって、照合の問題ではありません。= 比較も VLOOKUP も、そもそも大文字小文字を区別しないからです。本当の落とし穴は PROPER です。すべての単語の先頭を大文字にするため、McDonald を Mcdonald に、iPhone を Iphone に壊してしまいます。大文字小文字が本当に効いてくる場面と、PROPER が仕上げではなく出発点にすぎない理由を解説します。

Henry
Excel の LEN 関数 — 文字数を数え、見えないゴミをあぶり出す

Excel の LEN 関数 — 文字数を数え、見えないゴミをあぶり出す

LEN はセル内の文字数を数えますが、その真価は診断にあります。末尾のスペースや印刷されない文字まで含めてすべての文字を数えるため、『Apple』に見えるセルが実は 6 文字の『Apple 』であることを LEN が証明してくれます。検証、LEN 引く LEN の出現回数カウント術、動的な抽出、そして LEN が表示形式を無視する理由を解説します。

Henry
ExcelのVLOOKUP関数 — 使い方と、それを壊す第4引数

ExcelのVLOOKUP関数 — 使い方と、それを壊す第4引数

VLOOKUP はテーブルの左端の列を上から下へ探し、そこから右へN列数えるだけ——その一方通行の設計こそ、すべてのバグの元凶です。なぜ第4引数(range_lookup)はほぼ常に FALSE でなければならないのか、なぜ VLOOKUP は左を見られないのか、なぜ列番号をベタ書きすると列を挿入した瞬間に静かに壊れるのか、そして「見つからない」を意味する #N/A の直し方を解説します。

Henry
ExcelのINDEX & MATCH — VLOOKUPに勝つ、2つの関数による検索

ExcelのINDEX & MATCH — VLOOKUPに勝つ、2つの関数による検索

INDEX と MATCH は検索を2つの仕事に分けます:MATCH が位置を見つけ(「どの行?」)、INDEX がその位置の値を返します(「そこに何がある?」)。検索と取得を切り離すことこそ、INDEX/MATCH に VLOOKUP が欠くすべてを与えます——右と同じくらい簡単に左を見て、挿入された列に耐え、真の二次元検索をこなします。パターン、match_type の罠、そしてそれでも XLOOKUP に勝つ場面を学びましょう。

Henry
ExcelのHLOOKUP & LOOKUP — 水平検索と、引退させるべきレガシー関数

ExcelのHLOOKUP & LOOKUP — 水平検索と、引退させるべきレガシー関数

HLOOKUP は VLOOKUP を90度回転させたもの——最初の行を探して下へ読みます。LOOKUP は VLOOKUP の先祖で、その致命的な欠陥は完全一致オプションがないこと:常に近似し、ソート済みデータを要求します。水平レイアウトが HLOOKUP を正解にする場面、古典的な LOOKUP(2,1/…) の技が今も古いシートに現れる理由、そしてなぜ両者がほぼ XLOOKUP に道を譲るのかを学びましょう。

Henry
ExcelのAND & OR関数 — 条件を正しく組み合わせる(そしてExcelがショートサーキットしない理由)

ExcelのAND & OR関数 — 条件を正しく組み合わせる(そしてExcelがショートサーキットしない理由)

AND と OR は判断をしません——複数の TRUE/FALSE 判定を1つの結論にまとめ、それを IF やルールやフィルターへ渡すだけです。なぜ AND は IF の第1引数の中に入れる(ネストしたIFを包むのではなく)べきなのか、素の =AND(...) がなぜ TRUE という文字を表示するだけなのか、なぜ Excel はすべての引数を評価する(ショートサーキットしないので #DIV/0! を起こしうる)のか、そして配列マスクの +/* に切り替えるのはいつかを解説します。

Henry
ExcelのNOT & XOR関数 — 条件を反転する、そして多くの人が誤解する「1つだけ例外」のロジック

ExcelのNOT & XOR関数 — 条件を反転する、そして多くの人が誤解する「1つだけ例外」のロジック

NOT は1つの TRUE/FALSE の結論を反転し、XOR は AND や OR では表せない排他的論理和です。なぜ NOT は引数をちょうど1つしか取らない(だから複合条件には NOT(AND(...)) と書く)のか、NOT が実は <> の変装にすぎないのはいつか、ド・モルガンの法則こそ NOT の真の武器である理由、そして誰も警告しない XOR の意外な点——入力が3つ以上だと「ちょうど1つ」ではなく TRUE の個数が奇数のとき TRUE を返す——を解説します。

Henry
ExcelのIS関数 — ISNUMBER・ISTEXT・ISBLANK・ISERROR・ISNA(壊れる前に数式を守る)

ExcelのIS関数 — ISNUMBER・ISTEXT・ISBLANK・ISERROR・ISNA(壊れる前に数式を守る)

IS ファミリーはセルを調べて TRUE/FALSE の結論を返します——分類はしますが、決して変換はしません。なぜ ISBLANK は「空に見える」より厳密なのか(数式の空文字列は空白ではない)、なぜ ISERROR は本物のバグを隠し ISNA や IFNA の方がたいてい安全なのか、なぜ IF(ISERROR(x),…,x) は x を二度計算するのか、そして ISNUMBER の切り札——SEARCH をきれいな部分一致テストに変える——を解説します。

Henry
Excel TEXT 関数 — 数値を書式付きの文字列に変換する(そして合計できなくなる罠)

Excel TEXT 関数 — 数値を書式付きの文字列に変換する(そして合計できなくなる罠)

TEXT 関数は、書式コードを使って数値や日付を書式付きのテキスト文字列に変換します。=TEXT(1234.5,"$#,##0.00") は "$1,234.50" を返します。基本となる考え方(書式を実際の文字列に焼き込むのか、セルの表示専用の表示形式にするのか)、最大の罠(出力はテキストなので SUM が無視する #VALUE! の遠因)、数値と日付の書式コード速習、先頭ゼロとロケール、そしてセルの表示形式・CONCAT・ROUND のほうが適している場面を解説します。

Henry
Excel VALUE と NUMBERVALUE — テキストを計算できる数値に戻す

Excel VALUE と NUMBERVALUE — テキストを計算できる数値に戻す

VALUE は数値に見えるテキスト文字列 —— "1,234.50" や "$9.00" —— を、合計・並べ替え・グラフ化できる本物の数値に解析します。TEXT の逆関数です。基本となる考え方、現実世界での最大の原因(インポートや貼り付けの後に文字列として格納された数値)、なぜ VALUE はシステムのロケールに従うのか、そしてヨーロッパ式の "1.234,56" を NUMBERVALUE がどう解決するか、より速い数式なしの解決策(*1、二重単項マイナス、区切り位置)、そして最新の Excel が一部のテキストを暗黙変換しても SUM は決してしない理由を解説します。

Henry
Excel DATEVALUE と TIMEVALUE — テキストとして閉じ込められた日付と時刻を救い出す

Excel DATEVALUE と TIMEVALUE — テキストとして閉じ込められた日付と時刻を救い出す

Excel の日付は、実は日付書式をまとったシリアル値です。テキストとして到着した日付は、並べ替えも引き算も DATEDIF への受け渡しもできない偽者です。DATEVALUE はテキストの日付をそのシリアル値に、TIMEVALUE はテキストの時刻を 1 日の端数に解析します。基本となる考え方、テキスト日付の症状、03/04/2026 という地域依存の曖昧さの罠、日付と時刻の結合方法、DATEVALUE が文字列を解析できない場面、そして DATE(LEFT,MID,RIGHT) と区切り位置という代替手段を解説します。

Henry
Excel INDIRECT 関数 — 文字列を「生きた参照」に変える(そしてなぜ揮発性なのか)

Excel INDIRECT 関数 — 文字列を「生きた参照」に変える(そしてなぜ揮発性なのか)

INDIRECT は "A1" や "Sheet2!B3" のような文字列を、生きたセル参照に変えます。考え方の軸、最大の落とし穴(文字列は自動追従しないため、シート名を変更するとすべての INDIRECT が #REF! で壊れる)、なぜ揮発性で Excel の依存関係トレーサーから見えないのか、閉じたブックで #REF! になる罠、唯一の決定的な用途(セルに書かれたシート名から値を引く)、そしてテーブル・3D 参照・CHOOSE の方が良い場面までを解説します。

Henry
Excel OFFSET 関数 — 動く参照(そして INDEX の方が良い場面)

Excel OFFSET 関数 — 動く参照(そして INDEX の方が良い場面)

OFFSET はアンカーから決まった行数・列数だけ離れた参照を返し、必要ならブロック全体へリサイズできます。考え方の軸、なぜ値ではなく参照を返すので SUM に渡せるのか、揮発性という代償、定番の動的名前付き範囲の技とテーブルやスピル範囲が今やそれに勝る理由、端を越えると #REF! になる罠、そして肝心の判断(範囲へのインデックス取り出しには非揮発性の INDEX を使い、OFFSET は本当に動く窓のためだけに残す)を解説します。

Henry
Excel ADDRESS 関数 — セル番地を「文字列」として組み立てる(値ではない)

Excel ADDRESS 関数 — セル番地を「文字列」として組み立てる(値ではない)

ADDRESS はセル番地のテキストを組み立てます — =ADDRESS(1,1) は A1 の中身ではなく、文字列 "$A$1" を返します。考え方の軸(INDIRECT の入力側の逆)、値ではなく文字列を返すという最大の誤解、$ ロックを制御する abs_num 引数、INDIRECT や OFFSET と違ってなぜ揮発性でないのか、本当の用途(MATCH でどこに値があるか報告する・INDIRECT へ渡す参照を組み立てる)、そして現代の Excel でどれほどニッチかについての率直な見解を解説します。

Henry
Excel SUMPRODUCT関数 — 掛けてから足す、SUMIFSでは書けない条件まで

Excel SUMPRODUCT関数 — 掛けてから足す、SUMIFSでは書けない条件まで

SUMPRODUCTは配列を要素ごとに掛け合わせ、その結果を合計します。1つのセルで内積を計算する関数です。次元不一致による#VALUE!の落とし穴、なぜANDでは真偽値配列を掛け算しORでは足し算するのか(AND()/OR()を使ってはいけない理由)、二重マイナス(--)が必要になる場面、そしてSUMIFSでは今なお手が届かない加重合計と列をまたぐORの仕事を解説します。

Henry
Excel SUBTOTAL関数 — フィルターを尊重する集計(と9 vs 109の落とし穴)

Excel SUBTOTAL関数 — フィルターを尊重する集計(と9 vs 109の落とし穴)

SUBTOTALはフィルターを認識する集計です。フィルターで非表示になった行をスキップするので、リストの末尾の数字がフィルターに合わせて更新されます。function_numの一覧表、1〜11 vs 101〜111の落とし穴(手動で行を隠しても集計が変わらない理由)、SUBTOTALが他のSUBTOTALを無視して総合計が二重計上にならない仕組み、そしてエラーをスキップできない理由 — それこそAGGREGATEが作られた目的 — を解説します。

Henry
Excel AGGREGATE関数 — エラーも無視できるSUBTOTALの上位互換

Excel AGGREGATE関数 — エラーも無視できるSUBTOTALの上位互換

AGGREGATEはSUBTOTALに2つの強化を加えたものです。関数が11個ではなく19個になり、エラー値・非表示行・ネストした集計を無視できるoptions引数が付きました。function_num + optionsのグリッド、最も使われていない技 — IFERRORで掃除せずに #N/A を含む列を合計する技 — そして余分なk引数を必要とする配列形式の関数(LARGE、SMALL、PERCENTILE)を解説します。

Henry
Excel FIND・SEARCH — 内容で文字を探す(FIND と SEARCH の違い、そして

Excel FIND・SEARCH — 内容で文字を探す(FIND と SEARCH の違い、そして

FIND と SEARCH は、ある文字列が別の文字列の中で始まる位置を返します。これは MID や LEFT に渡すアンカーです。本当に重要な2つの違い(FIND は大文字小文字を区別しワイルドカード不可、SEARCH は区別せずワイルドカード可)、一致がないとなぜ両方とも #VALUE! を投げるのか、そして ISNUMBER(SEARCH()) の「含むか」判定テクニックを解説します。

Henry
Excel SUBSTITUTE・REPLACE — 内容で置き換えるか、位置で置き換えるか

Excel SUBSTITUTE・REPLACE — 内容で置き換えるか、位置で置き換えるか

SUBSTITUTE と REPLACE はどちらもテキストを置き換えますが、考え方が違います。SUBSTITUTE は内容で一致させ(すべての 'x' を、あるいは N 番目だけを置換)、REPLACE は位置で動きます(5文字目から9文字目を上書き)。どちらを使うか、なぜ SUBSTITUTE が大文字小文字を区別するのか、そして LEN 引く LEN の出現回数カウントのテクニックを解説します。

Henry
Excel ROUND 関数 — ROUND・ROUNDUP・ROUNDDOWN と「表示形式は四捨五入ではない」理由

Excel ROUND 関数 — ROUND・ROUNDUP・ROUNDDOWN と「表示形式は四捨五入ではない」理由

ROUND は格納されている値そのものを指定した小数桁に丸めますが、セルの表示形式は見た目を変えるだけです。この差が請求合計を1円ずれさせる理由、num_digits の使い分け(正・ゼロ・負)、ROUNDUP と ROUNDDOWN が ROUND とどう違うか、そしてなぜ「上下」ではなく「ゼロからの距離」で丸めるのかを解説します。

Henry
Excel MROUND・CEILING・FLOOR — 小数ではなく、最も近い倍数に丸める

Excel MROUND・CEILING・FLOOR — 小数ではなく、最も近い倍数に丸める

MROUND・CEILING・FLOOR は、小数の桁数ではなく、ある数の最も近い倍数 — 5セント、15分、1カートン丸ごと — に丸めます。第2引数が桁数ではなく倍数である理由、古い CEILING が負の数で #NUM! を出す理由、CEILING.MATH と FLOOR.MATH が安全な現代の選択肢である理由、そしてそれぞれをいつ選ぶかを解説します。

Henry
Excel INT・TRUNC・MOD — 小数を落とし、余りを求める

Excel INT・TRUNC・MOD — 小数を落とし、余りを求める

INT と TRUNC はどちらも小数を落としますが、INT はマイナス無限大の方向に丸め、TRUNC は単にゼロへ向けて切り落とすため、負の数で結果が分かれます。MOD は余りを返し、Excel では余りは数値ではなく除数の符号を引き継ぎます。1だけずれるワナ、日付と時刻の分離、シマ模様パターンを解説します。

Henry
ExcelのIF関数 — Yes/Noの分かれ道は一つ、ネストはどこで止めるか

ExcelのIF関数 — Yes/Noの分かれ道は一つ、ネストはどこで止めるか

IFは一つのYes/Noを問い、2つのうち1つの答えを返します。3つ目の引数を省くとFALSEが出る理由、ネストしたIFのピラミッドが2段を超えると崩れる理由(代わりにIFSやルックアップを使う)、ネストせずにAND/ORで条件をまとめる方法、IFの文字列比較が大文字小文字を無視する理由を解説します。

Henry
ExcelのIFS関数とSWITCH関数 — ネストIFのピラミッドなしで多分岐ロジックを

ExcelのIFS関数とSWITCH関数 — ネストIFのピラミッドなしで多分岐ロジックを

IFSは条件のリストを上から下へ確認し、最初に一致したものを返します。SWITCHは1つの値を複数のケースと照合します。バグの大半を生む2つの罠——IFSには既定値(else)がなく、振り分けを忘れると #N/A になること、そして先勝ちなので順序が命であること——に加え、IFS・SWITCH・ルックアップ表の使い分けを解説します。

Henry
ExcelのIFERROR関数 — バグを隠さずにエラーを受け止める(IFERROR vs IFNA)

ExcelのIFERROR関数 — バグを隠さずにエラーを受け止める(IFERROR vs IFNA)

IFERRORは数式のエラーをフォールバック値に置き換えますが、あらゆる種類のエラーを捕まえます——だから #REF! や #NAME? のような本物のバグまで静かに隠します。なぜルックアップにはたいてい IFNA が正しい道具なのか、すべてを IFERROR で包むのがアンチパターンである理由、そして XLOOKUP の if_not_found が両者に勝る理由を解説します。

Henry
ExcelのCOUNTIF & COUNTIFS — 条件に合う行を数える(そして ">"&A1 の罠)

ExcelのCOUNTIF & COUNTIFS — 条件に合う行を数える(そして ">"&A1 の罠)

COUNTIFSはすべての条件を満たした行を数えますが、条件を間違えるとエラーも出さずに「もっともらしいが間違った数」を返します。セルと比較するときは演算子を連結する正しい書き方、ANDは標準でORは別という仕組み、2つの日付の間を数える方法、そして重複を除いた数にはCOUNTIFSではなくUNIQUEが要る理由を解説します。

Henry
ExcelのSEQUENCE関数 — 数値・日付・連番の「生きた」配列を生成する

ExcelのSEQUENCE関数 — 数値・日付・連番の「生きた」配列を生成する

SEQUENCEは数値の配列を何もないところから生み出します。フィルハンドルの代わりではなく、動的配列の連番・日付シリーズ・グリッドを支える「エンジン」です。引数の順番(行、列、開始、増分)、生きたカレンダーの作り方、#SPILL!の直し方、ドラッグやROW()を置き換える場面を解説します。

Henry
Excel VBA の Trim — 空白が消えない理由と Chr(160) の対処法

Excel VBA の Trim — 空白が消えない理由と Chr(160) の対処法

VBA の Trim は両端だけを削り、内側の空白には触れません。さらに、Web や PDF からの貼り付けで紛れ込む非改行スペース Chr(160) も無視します。考え方の軸、使うべき正規化関数 1 つ、そしてどの関数がどの場面で勝つか。Excel 365 / 2021 / 2019 で検証済み。

Henry
VBA InputBox — 2つの InputBox と使い分け

VBA InputBox — 2つの InputBox と使い分け

VBA の InputBox は1つではなく2つあります。単純な InputBox で足りる場面、Type を付けた Application.InputBox が勝つ場面、そして両方を静かに壊す「キャンセルの落とし穴」まで。コピペで動く例、Excel 365 / 2021 / 2019 で動作確認済み。

Henry
VBA UserForm — 本格的な入力フォームを作る

VBA UserForm — 本格的な入力フォームを作る

VBA UserForm を正しく作る方法。イベント駆動の考え方、.Show のあとコードが「消える」理由、そして入力した値を読めるかどうかを決める Unload と Hide のルールまで。コピペで動くイベントコード、Excel 365 / 2021 / 2019 で動作確認済み。

Henry
Excel VBA Whileループ — Excelを固めずにループする方法

Excel VBA Whileループ — Excelを固めずにループする方法

VBAのWhileループは「必ず終わる」という約束であり、それを守るのはあなた。すべてのWhileループに必要な3つの部分、なぜDo WhileがWhile...Wendより良いのか、そして二度とExcelを固めない方法を、コピペ実例とともに。Excel 365 / 2021 / 2019で動作確認済み。

Henry
ExcelのUserFormにおけるSetFocusの完全ガイド:効率的なフォーム制御の実現方法

ExcelのUserFormにおけるSetFocusの完全ガイド:効率的なフォーム制御の実現方法

主要ポイント 1. 基本的な実装方法 UserForm_Activateでの初期フォーカス設定が重要 SetFocusメソッドを効果的に活用 TabIndexによる適切な移動順序の設定 2. 重要な改善点 エラーハンドリングの実装 パフォーマンス最適化 ユーザビリティの向上 3. 実装時の注意点 モードレスフォームでの特別な対応 イベント制御の適切な管理 フォーカス制御のタイミング

Rosa Rugosa
Excel VBAでヘッダーを配列に格納し、検索する方法

Excel VBAでヘッダーを配列に格納し、検索する方法

本記事では、Excel VBAを用いてシートのヘッダー情報を配列に格納し、さまざまな検索・管理手法を実践的に紹介しました。具体的には、MATCH関数で特定の表頭列を特定する方法、正規表現を用いた複雑な文字列マッチング、Dictionaryオブジェクトによるキーと値のペア管理などを解説しています。また、日本語ヘッダーを扱う際の注意点や、大規模データ処理を高速化するためのテクニック(スクリーン更新の停止や計算モードの最適化)も取り上げ、日々のExcel作業をより効率的かつ信頼性高く行うための実践的ノウハウを提供しています。

Rosa Rugosa