「トラブルシューティング」タグアーカイブ

Oracle「ORA-00060: デッドロックが検出されました」発生原因と解決策

ORA-00060: deadlock detected while waiting for resource は、Oracleデータベースが相互にロックし合う処理を検出し、処理を強制終了した際に発生するエラーです。トランザクション同士が互いに待ち状態に陥る**デッドロック(Deadlock)**が原因です。

本記事では、ORA-00060 の発生条件、よくある原因、デバッグ方法、実践的な対処策を詳しく解説します。


✅ ORA-00060とは?エラー概要

項目内容
エラーコードORA-00060
意味デッドロックが検出された
発生タイミングロック競合により処理が行き詰まった時
対応片方のSQLを強制ロールバック、アプリ側は例外処理

Oracleはデッドロックを検知すると一方のトランザクションを自動的にロールバックし、システム全体の停止を防ぎます。


✅ デッドロックが起こる典型例

パターン1:同じテーブルの行を別順にロック

セッションA: row1 → row2
セッションB: row2 → row1

片方が row1、もう片方が row2 を先にロックし、互いに次のリソースを待つ状態になる例です。

パターン2:未コミットの長時間処理

  • 更新処理をコミットせず放置

  • バッチ処理中に他の処理が割り込む

パターン3:アプリ側でロック順序の不一致

  • 更新対象リストをソートせず更新

  • 並列処理スレッドで異なる順番で更新


✅ 再現例(簡易デモ)

セッションA

セッションB

この状態でお互いのロックを待ち合うとデッドロック発生。


✅ デッドロック解析:trace file の場所と見方

Oracleはデッドロック検出時にアラートログとトレースファイルを出力します。

トレースファイル例

パス例:

内容には以下が記録:

  • SQL文

  • セッション情報

  • ロック対象オブジェクト

  • 相手セッション情報

デバッグポイント:

  • 同じ行/テーブルを複数処理が更新していないか

  • 並列バッチやトランザクション処理の順序


✅ 対策:アプリ側 & DB側のアプローチ

✅ 1. ロック順序を統一する(最重要)

複数行更新する場合はIDソートして更新するなど、順序を固定。

✅ 2. こまめに COMMIT / ロック保持時間を短縮

  • 不要なトランザクションを開きっぱなしにしない

  • 大量更新は小分け

✅ 3. 再試行ロジック(リトライ処理)

アプリ側で例外時にリトライする仕組み

✅ 4. 排他制御の明確化

  • SELECT … FOR UPDATE の利用

  • アプリの排他設計見直し

✅ 5. 監視・ログ出力の強化

  • SQLログ

  • ロック監視ビュー(v$lock,v$session,v$transaction


✅ まとめ

ポイント内容
原因トランザクション同士が相互待ち状態
検出後Oracleが一方をロールバック
対策ロック順序統一、リトライ処理、短いトランザクション
調査トレースファイル + v$session等

デッドロックはアプリ設計と運用改善で防げます。
DBの問題と思われがちですが、多くはアプリ側のトランザクション管理が原因です。

Windows 11:cmdからシステム情報を一括取得する便利コマンド集

「自分のWindows 11のスペックを知りたい」「トラブル発生時にシステム情報をまとめて取得したい」──そんなときに役立つのが、コマンドプロンプト(cmd)で使えるシステム情報取得コマンドです。

この記事では、Windows 11でシステム情報を一括確認できる基本コマンドから、用途別の便利コマンドまでまとめて紹介します。業務でのトラブル診断や、PCスペックの共有にも役立ちます。


✅ こんな人におすすめ

  • Windows 11のシステム情報を素早く知りたい

  • PCのスペックを他人に伝える必要がある

  • トラブル調査のために詳細情報を取得したい

  • GUIを開かずにコマンドで確認したい


📌 基本情報を一括取得するなら「systeminfo」コマンド

最も代表的なのが systeminfo コマンドです。
以下を入力するだけで、OS名・バージョン・CPU・メモリ・ネットワーク構成などが一覧表示されます。

▶ 出力される主な情報

項目内容
OS 名Windows 11 のエディション
OS バージョンビルド番号を含む詳細
システム製造元PCメーカー(例:Dell、HPなど)
システムモデルモデル名
プロセッサーCPU情報
BIOS バージョンUEFI情報
合計物理メモリRAM容量
ホスト名PC名
ネットワーク構成IPやドメイン設定

💡 テキストファイルに保存する方法



💻 CPUやメモリなどハードウェア情報が必要な場合:wmic

wmic は詳細な情報を取得できます。

✅ CPU情報

✅ メモリ(RAM)容量


✅ BIOS情報



🌐 ネットワーク情報を確認する:ipconfig /all

ネットワーク関連の情報を確認したい場合は以下のコマンドを使用します。


▶ 取得できる内容

  • IPv4・IPv6アドレス

  • デフォルトゲートウェイ

  • DNSサーバ

  • MACアドレス


📦 ドライブ容量を調べる:wmic logicaldisk

空き容量をチェックしたい場合に便利です。


📜 インストール済みドライバー一覧:driverquery

詳細付きで確認する場合:



📁 Windows 11のバージョンとビルド番号確認:ver

または次のコマンドでも詳細が表示されます。


📂 PowerShellを使ってさらに見やすく取得する方法(応用)

Windows 11ではPowerShellも使えます。



📑 よく使うコマンド一覧(まとめ)

コマンド用途
systeminfoシステム情報をまとめて取得
wmic cpu get nameCPU情報
wmic memorychip get capacityメモリ容量
ipconfig /allネットワーク情報詳細
driverqueryドライバー一覧
verバージョン確認
wmic logicaldisk get size,freespaceドライブ空き容量

✅ まとめ

Windows 11では、cmdを使うことでクリック操作なしで詳細なPC情報を一括取得できます。特にトラブル時やサポート依頼の際、systeminfo > pc_info.txt として保存しておくと、スムーズな共有が可能です。

ぜひ目的に応じて、紹介したコマンドを活用してみてください!

WordPress サイトヘルスの「REST API でエラーが発生しました(cURL error 28)」の原因と対処方法

WordPress のサイトヘルス診断で、以下のようなエラーが表示されたことはありませんか?

REST API のテスト時にエラーが発生しました:
(http_request_failed) cURL error 28: Operation timed out after 10000 milliseconds with 0 bytes received

このエラーは、WordPress が「自分自身の REST API にアクセスしようとしたときにタイムアウトして失敗する」ことで発生します。本記事では、実際にこのエラーが発生し、テーマの functions.php にコードを追記するだけで解消できた方法をご紹介します。


✅ エラーの原因

WordPress はサイトヘルス診断で「自分のサイトの REST API (例: /wp-json/...) にアクセスできるか」をチェックしています。

しかし、以下のような環境だとここで10秒待っても応答がなく、タイムアウト (cURL error 28) になります。

想定される原因よくあるパターン
IPv6 経路が不安定サーバーが IPv6経由でアクセスしようとして詰まる
HTTP/2 と cURL の相性HTTP/2 のネゴシエーションで固まる
WAF/CDN が自己アクセスをブロックCloudflare Bot対策やWordfence等
タイムアウトが短すぎるデフォルト10秒のまま

✅ 今回の解決方法(functions.php に追記だけ)

以下のコードを テーマの functions.php の末尾に貼り付けて保存するだけでエラーが消えました。


 

✅ このコードがやっていること(ざっくり理解用)

対策内容効果
IPv4固定IPv6経由で固まる環境を回避
HTTP/1.1固定HTTP/2でハングする問題を回避
タイムアウト延長10秒 → 20秒で猶予確保
サイトヘルス検査URLのみ内部処理化ネットワークを経由せず、確実に成功させる

✅ 本質的な根本原因がある場合の追加チェック(必要な人向け)

要確認箇所状況
Cloudflare / WAF/wp-json/* への自己アクセスがブロックされていないか
Wordfence / AIOWPS自サイト内アクセスがBot扱いされていないか
サーバーのIPv6不要なら無効化で安定することも
HTTP/2サーバー設定ALPNの相性によってはHTTP/1.1優先化で安定

✅ 結論

✔ サイトヘルスの「cURL error 28」は、WordPressが自分のREST APIを叩いたときにタイムアウトすることが原因
✔ テーマの functions.php に対策コードを入れるだけで解消可能。
✔ 環境によっては WAF・IPv6・HTTP/2 側の調整が必要な場合もあり。


✅ 今後の運用アドバイス

✅ このコードは常時有効のままでOK(他のREST動作を妨げない)
✅ 必要なら後で /wp-json/ の自己アクセスが安定したら内部実行部分だけ削除可
✅ Cloudflare や WAF を使っている場合は、「自己アクセスをブロックしない」設定を追加するとさらに健全


「REST APIのエラーがずっと消えなくて困っている」という方は、まず本記事の方法を試してみてください。

🪟 Windows 11:PINやパスワードを忘れたときのリセット方法

Windows 11では、MicrosoftアカウントやPINコードを使ってログインするのが一般的です。
しかし、「PINを忘れた」「パスワードを思い出せない」といったトラブルは誰にでも起こります。
この記事では、Windows 11でサインイン情報をリセットする方法をわかりやすく解説します。

この記事でわかること

  • PINやパスワードを忘れたときのリセット手順

  • ローカルアカウント・Microsoftアカウントの違い

  • トラブル時に試すべき順序と注意点


🧭 1. まず確認!どのタイプのアカウントか?

アカウント種別特徴リセット方法
MicrosoftアカウントOutlook、OneDriveなどと連携Web経由でリセット可能
ローカルアカウントPC単体で使うオフラインでパスワード変更可能
会社や学校アカウント(Azure AD)組織管理下のPC管理者またはIT部門に依頼

確認方法(通常時):
「設定」→「アカウント」→「あなたの情報」→「アカウントの種類」で判別できます。
サインインできない場合は、ログイン画面に「Microsoftアカウントでサインイン」と出ていればオンライン型です。


🔑 2. PINを忘れたときのリセット手順

✅ サインイン画面から再設定する

  1. ログイン画面で「PIN(I forgot my PIN)」をクリック

  2. Microsoftアカウントのパスワードを入力

  3. 登録しているメールまたは電話に確認コードが届く

  4. 新しいPINを設定して完了

💬 補足:PINはローカルPCにのみ保存されるため、他のデバイスには影響しません。


🌐 3. Microsoftアカウントのパスワードを忘れた場合

手順内容
スマホや別PCから https://account.live.com/password/reset にアクセス
登録メールまたは電話番号を入力
セキュリティコードを受け取り入力
新しいパスワードを設定

ポイント:

  • セキュリティ情報を事前に設定していないとリセットが難しくなります。

  • その場合、「追加情報の提供を求める」フォームから本人確認が必要です。


💻 4. ローカルアカウントのパスワードを忘れた場合

方法1:パスワードリセットディスクを使う

以前に作成したUSBキーを挿して「パスワードをリセット」を選択。
作成していない場合は、次の方法へ。

方法2:セーフモード+コマンドプロンプトで再設定

※上級者向けの手順です。

  1. 電源ボタンを押して再起動 → ログイン画面で「Shift」+「再起動」

  2. 「トラブルシューティング」→「詳細オプション」→「コマンド プロンプト」

  3. 以下を入力して新しいユーザーを作成


  1. 再起動後、「NewUser」でログインし、既存アカウントのパスワードを変更。


🧱 5. サインインオプションからPINを再設定する方法(設定から)

手順操作内容
「設定」→「アカウント」→「サインインオプション」
「PIN(Windows Hello)」を選択
「削除」→「新しいPINを設定」
再ログイン後にPINを再登録

⚠️ 一部環境では「この設定は組織によって管理されています」と表示され、管理者権限が必要な場合があります。


🧠 6. トラブルを防ぐための事前対策

対策項目内容
セキュリティ情報の登録Microsoftアカウントに電話番号・予備メールを登録
PINのバックアップメモ帳やパスワードマネージャーに控える
ローカルアカウントの予備作成管理者権限のバックアップユーザーを追加
パスワードリセットディスクの作成「コントロールパネル」→「ユーザーアカウント」から作成可能

🧩 7. どうしてもログインできない場合の最終手段

  • **リカバリドライブ(USB)**から起動し、Windowsを再インストール

  • 重要データがある場合は、別PCでドライブを読み取り救出可能

  • 組織PCの場合は、IT管理者に連絡


🚀 まとめ

状況リセット方法注意点
PINを忘れた「PINを忘れた」から再設定Microsoftアカウント認証が必要
Microsoftパスワードを忘れたWebでリセットセキュリティ情報が必須
ローカルアカウントのパスワードを忘れたセーフモードや別ユーザー上級者向け手順

Oracle「ORA-00054: リソースがビジー状態です」発生時の回避策

Oracleで以下のようなエラーが出ることがあります:

ORA-00054: リソースがビジー状態です。NOWAITを指定したためまたはタイムアウトが発生しました。

これは「対象のオブジェクトが別のセッションでロックされており、現在アクセスできない」ことを意味します。
主に DDL(CREATE、ALTER、DROPなど)を実行した際 に発生します。


🧠 主な発生原因

原因説明
セッションロック他のセッションがテーブルやインデックスを更新中でロック中
長時間トランザクションCOMMITされていないセッションが存在
DDLとDMLの競合DML実行中にALTER TABLEなどDDLを実行しようとした
自動統計・バックアップ中バックグラウンド処理が対象オブジェクトをロックしている

🧩 ロック状況の確認方法

1️⃣ ロックされているオブジェクトを特定


2️⃣ SQLを確認

🧰 回避策①:ロック解除(セッション切断)

他セッションが原因の場合は、該当セッションを強制終了します。


sidserial# は上記クエリで確認可能。

管理者権限(SYSDBA)が必要です。


🧰 回避策②:NOWAIT句またはWAIT句を利用

NOWAIT句(即時判定)


ロック中なら即エラーを返します。スクリプト制御時などに便利です。

WAIT句(待機)


最大10秒まで待機して、解除されれば処理を続行します。

🧰 回避策③:時間をおいて再実行

統計収集や自動ジョブが走っている時間帯(例:夜間バッチ中)に発生しやすいため、
時間をおいて再実行 するのも有効です。
特に自動メンテナンスが有効な環境では、深夜帯に競合することが多いです。


🧰 回避策④:DDLを業務外時間に実行

DDLはオブジェクトを完全ロックするため、
業務時間内にALTERやDROPを実行すると高確率で発生します。

定期メンテナンス時間帯 にスケジュール化しましょう。


⚠️ 注意点

  • KILL SESSION は強制終了のため、他処理への影響リスク がある

  • バッチ処理や自動統計のタイミングと重なると再発する

  • ロック発生元を特定し、原因セッションの対処を優先 することが重要


✅ まとめ(表)

対策内容注意点
セッション確認v$locked_object でロック特定管理者権限が必要
強制切断ALTER SYSTEM KILL SESSION他処理への影響注意
WAIT句利用ロック解除を待つタイムアウト指定が重要
実行タイミング調整バッチや統計処理の時間帯を避ける定期メンテナンス枠を活用

Windows 11のアップデートが0%のまま進まない場合の対処法

Windows 11を使っていると、「更新プログラムを確認しています」や「ダウンロード 0%」のまま進まない という状況に遭遇することがあります。特に大型アップデートやセキュリティ更新が多数あるとこの現象が発生しやすい印象ですね。

この記事では、Windows 11のアップデートが0%から進まない原因と解決方法について解説します。


主な原因

アップデートが0%から動かない場合、次のような要因が考えられます。

  1. インターネット接続の不安定さ
    回線速度が遅い、Wi-Fiが切れるなどの影響で進まないことがあります。

  2. Windows Updateの一時的な不具合
    Microsoftの配信サーバーやアップデートサービスの不具合で、処理が止まる場合があります。

  3. キャッシュや一時ファイルの破損
    更新プログラムの一時ファイルが壊れていると、ダウンロードが進まなくなります。

  4. ストレージ不足
    Cドライブの空き容量が少ないと、更新が進まないことがあります。


対処法

1. インターネット接続を確認する

  • Wi-Fiを再接続する

  • 有線LANに切り替える

  • 他のデバイスでネット速度を確認してみる

安定した回線で再度試すことが大切です。


2. PCを再起動して再試行

シンプルですが効果的な方法です。
再起動後、「設定」→「Windows Update」→「更新プログラムの確認」 をもう一度実行してみましょう。


3. Windows Update トラブルシューティングを実行

  1. 「設定」 → 「システム」 → 「トラブルシューティング」 → 「その他のトラブルシューティング」

  2. Windows Update を選択して実行

自動で問題を検出・修復してくれる場合があります。


4. キャッシュファイルを削除する(SoftwareDistribution フォルダ)

  1. Windowsキー + Rservices.msc を入力

  2. 「Windows Update」を停止

  3. C:\Windows\SoftwareDistribution フォルダを開く

  4. 中身のファイルをすべて削除

  5. 「Windows Update」サービスを再開

これで破損したキャッシュがリセットされます。


5. 空き容量を確保する

  • ディスクのクリーンアップを実行

  • 不要なアプリや一時ファイルを削除

  • 外付けHDDやUSBメモリを使ってデータを退避

最低でも 20GB以上 の空き容量を確保しておきましょう。


6. 手動でアップデートを適用する

どうしても進まない場合は、以下の方法があります。

  • Microsoft Updateカタログ から直接ダウンロード

  • Windows 11 インストールアシスタントを利用

公式ツールを使えば強制的に更新可能です。


まとめ

Windows 11のアップデートが0%から動かない場合は、

  • ネット接続の確認

  • 再起動とトラブルシューティング

  • キャッシュ削除や空き容量確保

  • 手動アップデート

の順に試すと解決できるケースが多いです。

アップデートはセキュリティや機能改善に必須なので、止まってしまったら早めに対処しておきましょう。

Oracle「ORA-06502: PL/SQL 数値または値エラー」エラーが出た時の解決方法

Oracle データベースを利用していると、**「ORA-06502: PL/SQL: 数値または値エラー」**というエラーに遭遇することがあります。これは比較的よく見られるエラーの一つで、主に「データ型の不一致」や「文字列長の超過」が原因です。この記事では、このエラーの代表的な原因と解決方法を解説します。


ORA-06502 エラーの意味

エラーメッセージ全文は以下のようになります。

 
ORA-06502: PL/SQL: 数値または値エラー

このエラーは、PL/SQL 実行時に「値が期待されるデータ型に収まらない」場合に発生します。例えば以下のケースです。

  • 数値型の変数に、文字列を代入しようとした場合

  • VARCHAR2 の長さ制限を超える文字列を代入した場合

  • 型変換関数(TO_NUMBER, TO_DATE など)が失敗した場合


よくある原因と解決方法

1. 文字列長の超過

原因: 変数 VARCHAR2(5) に 6文字を代入している。

解決方法: 変数の長さを見直す、あるいは SUBSTR を利用して長さを調整する。


2. 数値変換エラー

原因: 数値に変換できない文字列を渡している。

解決方法: 入力値が数値かどうかを事前にチェックする。正規表現を利用するのも有効です。

 
IF REGEXP_LIKE('123', '^[0-9]+$') THEN v_num := TO_NUMBER('123'); END IF;

3. 不正な日付変換

原因: 存在しない日付を変換しようとした。
解決方法: 入力フォーマットをチェックし、妥当な値のみ渡す。


4. 数値桁数のオーバーフロー

原因: 定義した精度・スケールを超える値を代入している。

解決方法: NUMBER の定義を見直す、または値を丸める。


トラブルシューティングのポイント

  • エラー発生時の 変数定義 を確認する

  • DBMS_OUTPUT.PUT_LINE代入しようとしている値 を出力する

  • データベースの カラム定義と変数定義の不一致 を確認する

  • 外部入力(CSV など)を扱う場合は 入力データの妥当性チェック を行う


まとめ

「ORA-06502」エラーは、ほとんどの場合 データ型の不一致値の範囲超過 が原因です。
再発防止のためには以下が重要です。

  • 変数やカラムの定義を余裕を持たせて設計する

  • 入力値チェックを徹底する

  • デバッグ時に DBMS_OUTPUT を活用して値を追跡する

これらを意識することで、エラーを効率的に解消できるはずです。

PHPアップデート後にWordPressが真っ白に?致命的エラーから復旧する方法

WordPressでサイトを運営していると、サーバー側でPHPのバージョンを更新した際に「致命的エラー(Fatal Error)」が発生し、サイトが真っ白になって表示されなくなることがあります。
これは古いテーマやプラグインが新しいPHPに対応していないことが主な原因です。

この記事では、PHP更新後にWordPressが表示されなくなったときの原因と復旧手順をわかりやすく解説します。


よくある原因

  • プラグインの非互換性
    古いプラグインがPHPの新しい構文に対応しておらず、エラーを引き起こす。

  • テーマのコードが古い
    独自テーマや更新が止まっているテーマが最新PHPで動作しない。

  • キャッシュや.htaccessの問題
    PHP切替直後にキャッシュが残っていたり、設定ファイルが古い記述を持っている場合。


復旧のためのステップ

1. エラーメッセージを確認する

  • サイトは真っ白でも、サーバーログ(error_log)やWordPressのデバッグモードで原因を確認できます。

  • wp-config.php に以下を追加するとエラー内容が記録されます。

  • この設定を有効にすると、wp-content/debug.log というファイルが自動的に作成され、エラー内容が追記されていきます。

  • サイト訪問者にエラーメッセージを見せずに、管理者だけがエラーを確認できるので安心です。

2. プラグインを停止する

  • FTPやファイルマネージャーで wp-content/plugins フォルダを開き、問題のプラグインを一時的にリネーム(例: simple-lightboxsimple-lightbox_old)。

  • これでサイトが表示されれば、そのプラグインが原因です。

3. テーマを切り替える

  • wp-content/themes 内の現在のテーマをリネームすると、自動的にWordPressのデフォルトテーマ(Twenty Twenty系など)が有効化されます。

  • これで表示されれば、使用中のテーマが原因です。

4. PHPバージョンを一時的に戻す

  • サーバーの管理画面からPHPを前のバージョンに戻せば、とりあえずサイトは表示されます。

  • その後、プラグインやテーマを更新して対応を進めましょう。

5. 最新バージョンへの対応

  • プラグイン・テーマの更新を行いましょう。開発が止まっている場合は代替のプラグインを探すのが現実的です。

  • サイト全体のバックアップを取り、再度PHPを新しいバージョンに切り替えます。


再発防止のポイント

  • PHP更新前にステージング環境やテスト環境で動作確認する。

  • 定期的にテーマ・プラグインを更新しておく。

  • 更新が止まっているプラグインはできるだけ使用しない。


まとめ

PHPアップデート後にWordPressが「真っ白」になった場合、慌てずに以下の流れで対応しましょう。

  1. エラーログやデバッグモードで原因を確認

  2. プラグインやテーマを無効化して切り分け

  3. 必要に応じてPHPを一時的に戻す

  4. プラグイン・テーマを更新して再度挑戦

この手順を踏めば、多くのケースで復旧が可能です。
「真っ白画面」は焦りますが、落ち着いて対応すれば必ず解決できます。

Microsoft Excelで「#N/A」エラーの原因と対策まとめ

ExcelでVLOOKUP関数を使用すると「#N/A」と表示されてしまうケースを見かける事があるかと思います。この事象の発生原因と対処方法をメモしておきます。
◆設定例(C4セル):「=VLOOKUP($B4,$F$4:$G$20,2,0)」

発生原因

  • 【検索値】となるセルに値が入力されていない。
  • 【検索値】となるセルの値が、【検索範囲】に指定した一覧表に存在しない。

対処方法

  • ISERROR関数を使用し、VLOOKUPの結果ERRORとなる場合には””が表示されるように条件を指定します。
    ◆設定例(C4セル):「=IF(ISERROR(VLOOKUP($B4,$F$4:$G$20,2,0)),””,VLOOKUP($B4,$F$4:$G$20,2,0))」

🔍 補足:#N/Aエラーの原因と対策まとめ

Excelで「#N/A」が表示される原因は単純な入力ミスだけでなく、次のような要因も考えられます。
見逃しやすいポイントを整理しておきましょう。


✅ 1. データ型の不一致

検索値と参照範囲のデータ型(文字列/数値)が一致していないと、「#N/A」が返ることがあります。
例:検索値が "123"(文字列)で、参照範囲に 123(数値)しかない場合、一致しません。
→ 対策:VALUE 関数や TEXT 関数で型を統一しましょう。


✅ 2. 近似一致モードの誤使用

VLOOKUP の第4引数が 1 または省略になっていると「近似一致」になります。
この場合、参照範囲が昇順ソートされていないと誤動作や「#N/A」が発生します。
→ 対策:完全一致にしたい場合は =VLOOKUP(検索値,範囲,列番号,0) と指定。


✅ 3. 空白・スペース・不可視文字の混入

外部データをコピーしたセルには、全角スペースや改行などの見えない文字が含まれることがあります。
→ 対策:TRIMCLEAN 関数で不要な空白を削除。


✅ 4. 大文字・小文字や特殊文字の影響

Excel標準の検索は大文字小文字を区別しませんが、記号や全角・半角の違いで一致しないことがあります。
→ 対策:EXACT 関数で文字列を比較してみると原因が分かる場合もあります。


✅ 5. 新関数「XLOOKUP」で柔軟に対応

Excel 365以降では、XLOOKUP 関数を使うことで「#N/A」時の代替値を直接指定できます。

上記のように設定すれば、該当データがないときに空白を返せます。


✅ 6. IFERROR/IFNA関数でエラーを制御

記事内で紹介している IF(ISERROR(VLOOKUP(...))) の代わりに、
「#N/A」だけを対象にできる IFNA 関数を使うのがおすすめです。

他のエラーはそのまま残しつつ、「#N/A」だけを空白にできます。


💡 まとめ
「#N/A」エラーは「該当データなし」だけでなく、型・スペース・一致条件など多くの要因で発生します。
原因を切り分けることで、より確実なデータ参照が可能になります。