[{"data":1,"prerenderedAt":1685},["ShallowReactive",2],{"content-/excel-functions-let-xmatch-index-guide":3,"all-pages-for-dir":1663,"related-/excel-functions-let-xmatch-index-guide":1664,"og-image-/excel-functions-let-xmatch-index-guide":1684},{"id":4,"title":5,"body":6,"category":1645,"concepts":1645,"description":1646,"extension":1647,"meta":1648,"navigation":1649,"ogImage":1645,"path":1650,"project_name":1645,"published":1651,"publishedAt":1652,"seo":1653,"source":1645,"stem":1654,"tags":1655,"todo":1645,"unpublished":1651,"updatedAt":1645,"__hash__":1662},"pages/2025-10/2025-10-18/excel-functions-let-xmatch-index-guide.md","Excel関数完全ガイド - LET・XMATCH・INDEX・2次元スピルの仕組みを理解する",{"type":7,"value":8,"toc":1608},"minimark",[9,14,21,24,28,31,33,37,42,45,62,66,87,91,94,150,153,158,167,178,183,247,254,256,260,264,267,276,280,359,363,374,376,380,384,387,396,400,442,446,449,493,498,513,515,519,523,526,530,535,538,547,552,555,564,568,582,584,588,592,595,600,614,619,701,706,717,719,723,726,731,740,745,754,759,768,773,782,787,804,806,810,815,818,871,876,890,894,899,946,951,953,957,961,964,973,977,980,989,992,995,1008,1013,1015,1019,1022,1026,1035,1041,1046,1117,1119,1123,1132,1137,1142,1154,1156,1160,1169,1174,1179,1217,1222,1236,1238,1242,1251,1256,1261,1269,1271,1275,1284,1289,1293,1301,1303,1307,1316,1321,1343,1347,1361,1363,1367,1376,1380,1400,1404,1417,1419,1423,1432,1436,1457,1462,1500,1502,1506,1553,1555,1559,1562,1565,1571,1574,1577,1580,1583,1586,1589,1591,1601,1604],[10,11,13],"h1",{"id":12},"excel関数完全ガイド","Excel関数完全ガイド",[15,16,17],"p",{},[18,19,20],"strong",{},"LET・XMATCH・INDEX・2次元スピルの仕組みを理解する",[22,23],"hr",{},[25,26,27],"h2",{"id":27},"はじめに",[15,29,30],{},"給与所得控除の計算を例に、Excelの最新関数であるLET、XMATCH、INDEX、そして2次元スピル機能についてこのガイドでは詳しく解説します。これらの関数を組み合わせることで、従来のINDEX+MATCH関数よりも読みやすく、メンテナンスしやすい数式を作成できます。",[22,32],{},[25,34,36],{"id":35},"_1-let関数とは","1. LET関数とは",[38,39,41],"h3",{"id":40},"_11-基本的な仕組み","1.1 基本的な仕組み",[15,43,44],{},"LET関数は、数式の中で「変数」を定義できる画期的な関数です。プログラミング言語の変数と同じように、計算結果や値に名前を付けて、数式の中で何度も使い回すことができます。",[46,47,52],"pre",{"className":48,"code":49,"language":50,"meta":51,"style":51},"language-excel shiki shiki-themes vitesse-light vitesse-light","=LET(変数名1, 値1, 変数名2, 値2, 最終的な計算式)\n","excel","",[53,54,55],"code",{"__ignoreMap":51},[56,57,60],"span",{"class":58,"line":59},"line",1,[56,61,49],{},[38,63,65],{"id":64},"_12-let関数のメリット","1.2 LET関数のメリット",[67,68,69,73,76,79,82],"ul",{},[70,71,72],"li",{},"数式が読みやすくなる：変数名で何を計算しているかが一目瞭然",[70,74,75],{},"計算効率が向上：同じ計算を何度も繰り返さない",[70,77,78],{},"デバッグが簡単：変数ごとに動作を確認できる",[70,80,81],{},"複合参照（$記号）を減らせる：変数に値を格納すれば$が不要に",[70,83,84],{},[18,85,86],{},"同じ範囲を何度も書かない：繰り返し使う範囲も変数にできる",[38,88,90],{"id":89},"_13-具体例","1.3 具体例",[15,92,93],{},"以下のテーブル（A1:C10）があるとします：",[95,96,97,113],"table",{},[98,99,100],"thead",{},[101,102,103,107,110],"tr",{},[104,105,106],"th",{},"商品名",[104,108,109],{},"価格",[104,111,112],{},"在庫",[114,115,116,128,139],"tbody",{},[101,117,118,122,125],{},[119,120,121],"td",{},"りんご",[119,123,124],{},"150",[119,126,127],{},"50",[101,129,130,133,136],{},[119,131,132],{},"みかん",[119,134,135],{},"100",[119,137,138],{},"30",[101,140,141,144,147],{},[119,142,143],{},"バナナ",[119,145,146],{},"120",[119,148,149],{},"40",[15,151,152],{},"従来の数式との比較を見てみましょう。",[15,154,155],{},[18,156,157],{},"従来の方法（複雑で読みにくい）：",[46,159,161],{"className":48,"code":160,"language":50,"meta":51,"style":51},"=INDEX($A$2:$C$10, MATCH($E$2, $A$2:$A$10, 1), MATCH($F$1, $A$1:$C$1, 0))\n",[53,162,163],{"__ignoreMap":51},[56,164,165],{"class":58,"line":59},[56,166,160],{},[15,168,169,170,173,174,177],{},"この数式では ",[53,171,172],{},"$A$2:$A$10"," や ",[53,175,176],{},"$A$1:$C$1"," などの範囲が複数回出てきて、変更が大変です。",[15,179,180],{},[18,181,182],{},"LET関数を使った方法（読みやすい）：",[46,184,186],{"className":48,"code":185,"language":50,"meta":51,"style":51},"=LET(\n  tbl, $A$2:$C$10,\n  header, $A$1:$C$1,\n  商品列, $A$2:$A$10,\n  検索値, $E$2,\n  列名, $F$1,\n  行位置, MATCH(検索値, 商品列, 1),\n  列位置, MATCH(列名, header, 0),\n  INDEX(tbl, 行位置, 列位置)\n)\n",[53,187,188,193,199,205,211,217,223,229,235,241],{"__ignoreMap":51},[56,189,190],{"class":58,"line":59},[56,191,192],{},"=LET(\n",[56,194,196],{"class":58,"line":195},2,[56,197,198],{},"  tbl, $A$2:$C$10,\n",[56,200,202],{"class":58,"line":201},3,[56,203,204],{},"  header, $A$1:$C$1,\n",[56,206,208],{"class":58,"line":207},4,[56,209,210],{},"  商品列, $A$2:$A$10,\n",[56,212,214],{"class":58,"line":213},5,[56,215,216],{},"  検索値, $E$2,\n",[56,218,220],{"class":58,"line":219},6,[56,221,222],{},"  列名, $F$1,\n",[56,224,226],{"class":58,"line":225},7,[56,227,228],{},"  行位置, MATCH(検索値, 商品列, 1),\n",[56,230,232],{"class":58,"line":231},8,[56,233,234],{},"  列位置, MATCH(列名, header, 0),\n",[56,236,238],{"class":58,"line":237},9,[56,239,240],{},"  INDEX(tbl, 行位置, 列位置)\n",[56,242,244],{"class":58,"line":243},10,[56,245,246],{},")\n",[15,248,249,250,253],{},"変数 ",[53,251,252],{},"商品列"," を定義することで、同じ範囲を何度も書く必要がなくなります。",[22,255],{},[25,257,259],{"id":258},"_2-xmatch関数とは","2. XMATCH関数とは",[38,261,263],{"id":262},"_21-基本的な仕組み","2.1 基本的な仕組み",[15,265,266],{},"XMATCH関数は、MATCH関数の進化版です。指定した値が範囲の中で何番目にあるかを返します。MATCH関数よりも柔軟な検索ができ、スピルにも対応しています。",[46,268,270],{"className":48,"code":269,"language":50,"meta":51,"style":51},"=XMATCH(検索値, 検索範囲, [一致モード], [検索モード])\n",[53,271,272],{"__ignoreMap":51},[56,273,274],{"class":58,"line":59},[56,275,269],{},[38,277,279],{"id":278},"_22-引数の詳細","2.2 引数の詳細",[95,281,282,292],{},[98,283,284],{},[101,285,286,289],{},[104,287,288],{},"引数",[104,290,291],{},"説明",[114,293,294,304,314,337],{},[101,295,296,301],{},[119,297,298],{},[18,299,300],{},"検索値",[119,302,303],{},"探したい値を指定します",[101,305,306,311],{},[119,307,308],{},[18,309,310],{},"検索範囲",[119,312,313],{},"検索対象のセル範囲を指定します",[101,315,316,321],{},[119,317,318],{},[18,319,320],{},"一致モード",[119,322,323,324,327,328,330,331,333,334,336],{},"省略可能。検索方法を指定：",[325,326],"br",{},"　0 = 完全一致（デフォルト）",[325,329],{},"-1 = 完全一致または次に小さい値",[325,332],{},"　1 = 完全一致または次に大きい値",[325,335],{},"　2 = ワイルドカード一致",[101,338,339,344],{},[119,340,341],{},[18,342,343],{},"検索モード",[119,345,346,347,349,350,352,353,355,356,358],{},"省略可能。検索方向を指定：",[325,348],{},"　1 = 先頭から検索（デフォルト）",[325,351],{},"-1 = 末尾から検索",[325,354],{},"　2 = 昇順で二分探索",[325,357],{},"-2 = 降順で二分探索",[38,360,362],{"id":361},"_23-match関数との違い","2.3 MATCH関数との違い",[67,364,365,368,371],{},[70,366,367],{},"より柔軟な検索オプション（ワイルドカード、二分探索など）",[70,369,370],{},"スピルに対応（配列を渡すと複数の結果を返す）",[70,372,373],{},"エラー処理がより明確",[22,375],{},[25,377,379],{"id":378},"_3-index関数とは","3. INDEX関数とは",[38,381,383],{"id":382},"_31-基本的な仕組み","3.1 基本的な仕組み",[15,385,386],{},"INDEX関数は、指定した範囲の中から、行番号と列番号を指定して値を取り出す関数です。データベースから特定の値を取得するような動作をします。",[46,388,390],{"className":48,"code":389,"language":50,"meta":51,"style":51},"=INDEX(範囲, 行番号, [列番号])\n",[53,391,392],{"__ignoreMap":51},[56,393,394],{"class":58,"line":59},[56,395,389],{},[38,397,399],{"id":398},"_32-引数の詳細","3.2 引数の詳細",[95,401,402,410],{},[98,403,404],{},[101,405,406,408],{},[104,407,288],{},[104,409,291],{},[114,411,412,422,432],{},[101,413,414,419],{},[119,415,416],{},[18,417,418],{},"範囲",[119,420,421],{},"値を取り出す元となるセル範囲を指定します",[101,423,424,429],{},[119,425,426],{},[18,427,428],{},"行番号",[119,430,431],{},"範囲の中で何行目かを指定します（1から始まる）",[101,433,434,439],{},[119,435,436],{},[18,437,438],{},"列番号",[119,440,441],{},"省略可能。範囲の中で何列目かを指定します（1から始まる）。1列のみの範囲なら省略可能",[38,443,445],{"id":444},"_33-具体例","3.3 具体例",[15,447,448],{},"以下のような表があるとします：",[95,450,451,461],{},[98,452,453],{},[101,454,455,457,459],{},[104,456,106],{},[104,458,109],{},[104,460,112],{},[114,462,463,473,483],{},[101,464,465,467,470],{},[119,466,121],{},[119,468,469],{},"150円",[119,471,472],{},"50個",[101,474,475,477,480],{},[119,476,132],{},[119,478,479],{},"100円",[119,481,482],{},"30個",[101,484,485,487,490],{},[119,486,143],{},[119,488,489],{},"120円",[119,491,492],{},"40個",[15,494,495],{},[18,496,497],{},"この表から値を取り出す例：",[46,499,501],{"className":48,"code":500,"language":50,"meta":51,"style":51},"=INDEX(A2:C4, 2, 2)  → 「100円」（2行目2列目）\n=INDEX(A2:C4, 3, 1)  → 「バナナ」（3行目1列目）\n",[53,502,503,508],{"__ignoreMap":51},[56,504,505],{"class":58,"line":59},[56,506,507],{},"=INDEX(A2:C4, 2, 2)  → 「100円」（2行目2列目）\n",[56,509,510],{"class":58,"line":195},[56,511,512],{},"=INDEX(A2:C4, 3, 1)  → 「バナナ」（3行目1列目）\n",[22,514],{},[25,516,518],{"id":517},"_4-スピルspillとは","4. スピル（Spill）とは",[38,520,522],{"id":521},"_41-基本的な仕組み","4.1 基本的な仕組み",[15,524,525],{},"スピルは、1つのセルに入力した数式が、必要に応じて自動的に複数のセルに結果を「こぼれる（spill）」ように表示する機能です。従来は配列数式を使って複雑な操作が必要でしたが、スピルを使えば自然に複数の結果を得られます。",[38,527,529],{"id":528},"_42-スピルの種類","4.2 スピルの種類",[15,531,532],{},[18,533,534],{},"縦方向のスピル（1次元）",[15,536,537],{},"配列を1つ渡すと、縦方向または横方向にスピルします。",[46,539,541],{"className":48,"code":540,"language":50,"meta":51,"style":51},"=XMATCH(D8:D9, header, 0)  → 2つの結果が縦にスピル\n",[53,542,543],{"__ignoreMap":51},[56,544,545],{"class":58,"line":59},[56,546,540],{},[15,548,549],{},[18,550,551],{},"2次元スピル（縦と横）",[15,553,554],{},"配列を2つ（縦方向と横方向）渡すと、格子状にスピルします。これにより、複数の行と列にわたる計算結果を1つの数式で得られます。",[46,556,558],{"className":48,"code":557,"language":50,"meta":51,"style":51},"=INDEX(範囲, {行1;行2}, {列1,列2})  → 2×2の結果が格子状にスピル\n",[53,559,560],{"__ignoreMap":51},[56,561,562],{"class":58,"line":59},[56,563,557],{},[38,565,567],{"id":566},"_43-スピルのメリット","4.3 スピルのメリット",[67,569,570,573,576,579],{},[70,571,572],{},"数式のコピー不要：1つのセルに入力するだけで複数の結果が自動表示",[70,574,575],{},"複合参照（$）が不要：スピルは自動的に適切な範囲に展開される",[70,577,578],{},"メンテナンスが簡単：元の数式を変更すれば、スピルした全ての結果も自動更新",[70,580,581],{},"動的な範囲：データの増減に自動対応",[22,583],{},[25,585,587],{"id":586},"_5-実例給与所得控除の計算","5. 実例：給与所得控除の計算",[38,589,591],{"id":590},"_51-元のデータ構造","5.1 元のデータ構造",[15,593,594],{},"今回の例では、以下のようなデータ構造になっています：",[15,596,597],{},[18,598,599],{},"シート「夫_給与収入額面と手取り_sum」：",[67,601,602,605,608,611],{},[70,603,604],{},"E7セル：給与額面（例：5,000,000円）",[70,606,607],{},"F7セル：給与額面（例：6,000,000円）※追加された場合",[70,609,610],{},"D8セル：項目名「収入金額に乗じる率」",[70,612,613],{},"D9セル：項目名「控除/加算金額」",[15,615,616],{},[18,617,618],{},"シート「table_給与所得控除」のデータ（D3:F10）：",[95,620,621,634],{},[98,622,623],{},[101,624,625,628,631],{},[104,626,627],{},"給与等の収入金額",[104,629,630],{},"収入金額に乗じる率",[104,632,633],{},"控除/加算金額",[114,635,636,647,658,669,680,691],{},[101,637,638,641,644],{},[119,639,640],{},"1",[119,642,643],{},"0",[119,645,646],{},"550,000",[101,648,649,652,655],{},[119,650,651],{},"1,625,001",[119,653,654],{},"0.4",[119,656,657],{},"-100,000",[101,659,660,663,666],{},[119,661,662],{},"1,800,001",[119,664,665],{},"0.3",[119,667,668],{},"80,000",[101,670,671,674,677],{},[119,672,673],{},"3,600,001",[119,675,676],{},"0.2",[119,678,679],{},"440,000",[101,681,682,685,688],{},[119,683,684],{},"6,600,001",[119,686,687],{},"0.1",[119,689,690],{},"1,100,000",[101,692,693,696,698],{},[119,694,695],{},"8,500,001",[119,697,643],{},[119,699,700],{},"1,950,000",[15,702,703],{},[18,704,705],{},"データの範囲：",[67,707,708,711,714],{},[70,709,710],{},"ヘッダー行：D3:F3",[70,712,713],{},"データ部分：D4:F10（最終行D10は空）",[70,715,716],{},"収入金額列：D4:D10",[22,718],{},[38,720,722],{"id":721},"_52-従来の数式index-match","5.2 従来の数式（INDEX + MATCH）",[15,724,725],{},"従来の方法では、E8、E9、F8、F9の4つのセルに、それぞれ別の数式が必要でした：",[15,727,728],{},[18,729,730],{},"E8セル：",[46,732,734],{"className":48,"code":733,"language":50,"meta":51,"style":51},"=INDEX(table_給与所得控除!$D$4:$F$10, MATCH(E$7, table_給与所得控除!$D$4:$D$10, 1), MATCH($D8, table_給与所得控除!$D$3:$F$3, 0))\n",[53,735,736],{"__ignoreMap":51},[56,737,738],{"class":58,"line":59},[56,739,733],{},[15,741,742],{},[18,743,744],{},"E9セル：",[46,746,748],{"className":48,"code":747,"language":50,"meta":51,"style":51},"=INDEX(table_給与所得控除!$D$4:$F$10, MATCH(E$7, table_給与所得控除!$D$4:$D$10, 1), MATCH($D9, table_給与所得控除!$D$3:$F$3, 0))\n",[53,749,750],{"__ignoreMap":51},[56,751,752],{"class":58,"line":59},[56,753,747],{},[15,755,756],{},[18,757,758],{},"F8セル：",[46,760,762],{"className":48,"code":761,"language":50,"meta":51,"style":51},"=INDEX(table_給与所得控除!$D$4:$F$10, MATCH(F$7, table_給与所得控除!$D$4:$D$10, 1), MATCH($D8, table_給与所得控除!$D$3:$F$3, 0))\n",[53,763,764],{"__ignoreMap":51},[56,765,766],{"class":58,"line":59},[56,767,761],{},[15,769,770],{},[18,771,772],{},"F9セル：",[46,774,776],{"className":48,"code":775,"language":50,"meta":51,"style":51},"=INDEX(table_給与所得控除!$D$4:$F$10, MATCH(F$7, table_給与所得控除!$D$4:$D$10, 1), MATCH($D9, table_給与所得控除!$D$3:$F$3, 0))\n",[53,777,778],{"__ignoreMap":51},[56,779,780],{"class":58,"line":59},[56,781,775],{},[15,783,784],{},[18,785,786],{},"問題点：",[67,788,789,792,795,801],{},[70,790,791],{},"合計4つの数式が必要",[70,793,794],{},"複合参照（$記号）が多い",[70,796,797,800],{},[53,798,799],{},"table_給与所得控除!$D$4:$D$10"," など同じ範囲を何度も書いている",[70,802,803],{},"メンテナンスが大変",[22,805],{},[38,807,809],{"id":808},"_53-let-xmatch-2次元スピルを使った新しい数式","5.3 LET + XMATCH + 2次元スピルを使った新しい数式",[811,812,814],"h4",{"id":813},"ステップ1まず1列だけの場合","ステップ1：まず1列だけの場合",[15,816,817],{},"E8セルに以下の数式を入力すると、E8とE9の2つのセルに自動的にスピルします：",[46,819,821],{"className":48,"code":820,"language":50,"meta":51,"style":51},"=LET(\n  tbl, table_給与所得控除!$D$4:$F$10,\n  header, table_給与所得控除!$D$3:$F$3,\n  収入金額列, table_給与所得控除!$D$4:$D$10,\n  給与額面, E7,\n  項目リスト, D8:D9,\n  rowMatch, XMATCH(給与額面, 収入金額列, -1),\n  colMatch, XMATCH(項目リスト, header, 0),\n  INDEX(tbl, rowMatch, colMatch)\n)\n",[53,822,823,827,832,837,842,847,852,857,862,867],{"__ignoreMap":51},[56,824,825],{"class":58,"line":59},[56,826,192],{},[56,828,829],{"class":58,"line":195},[56,830,831],{},"  tbl, table_給与所得控除!$D$4:$F$10,\n",[56,833,834],{"class":58,"line":201},[56,835,836],{},"  header, table_給与所得控除!$D$3:$F$3,\n",[56,838,839],{"class":58,"line":207},[56,840,841],{},"  収入金額列, table_給与所得控除!$D$4:$D$10,\n",[56,843,844],{"class":58,"line":213},[56,845,846],{},"  給与額面, E7,\n",[56,848,849],{"class":58,"line":219},[56,850,851],{},"  項目リスト, D8:D9,\n",[56,853,854],{"class":58,"line":225},[56,855,856],{},"  rowMatch, XMATCH(給与額面, 収入金額列, -1),\n",[56,858,859],{"class":58,"line":231},[56,860,861],{},"  colMatch, XMATCH(項目リスト, header, 0),\n",[56,863,864],{"class":58,"line":237},[56,865,866],{},"  INDEX(tbl, rowMatch, colMatch)\n",[56,868,869],{"class":58,"line":243},[56,870,246],{},[15,872,873],{},[18,874,875],{},"改善点：",[67,877,878,887],{},[70,879,880,882,883,886],{},[53,881,799],{}," を変数 ",[53,884,885],{},"収入金額列"," に格納",[70,888,889],{},"同じ範囲を2回以上書く必要がない",[811,891,893],{"id":892},"ステップ22列に拡張する場合","ステップ2：2列に拡張する場合",[15,895,896],{},[18,897,898],{},"たった1箇所を変更するだけで、E8:F9の4つのセル全てに自動的にスピルします！",[46,900,902],{"className":48,"code":901,"language":50,"meta":51,"style":51},"=LET(\n  tbl, table_給与所得控除!$D$4:$F$10,\n  header, table_給与所得控除!$D$3:$F$3,\n  収入金額列, table_給与所得控除!$D$4:$D$10,\n  給与額面リスト, E7:F7,\n  項目リスト, D8:D9,\n  rowMatch, XMATCH(給与額面リスト, 収入金額列, -1),\n  colMatch, XMATCH(項目リスト, header, 0),\n  INDEX(tbl, rowMatch, colMatch)\n)\n",[53,903,904,908,912,916,920,925,929,934,938,942],{"__ignoreMap":51},[56,905,906],{"class":58,"line":59},[56,907,192],{},[56,909,910],{"class":58,"line":195},[56,911,831],{},[56,913,914],{"class":58,"line":201},[56,915,836],{},[56,917,918],{"class":58,"line":207},[56,919,841],{},[56,921,922],{"class":58,"line":213},[56,923,924],{},"  給与額面リスト, E7:F7,\n",[56,926,927],{"class":58,"line":219},[56,928,851],{},[56,930,931],{"class":58,"line":225},[56,932,933],{},"  rowMatch, XMATCH(給与額面リスト, 収入金額列, -1),\n",[56,935,936],{"class":58,"line":231},[56,937,861],{},[56,939,940],{"class":58,"line":237},[56,941,866],{},[56,943,944],{"class":58,"line":243},[56,945,246],{},[15,947,948],{},[18,949,950],{},"変更点：「給与額面, E7,」を「給与額面リスト, E7:F7,」に変更しただけ！",[22,952],{},[38,954,956],{"id":955},"_54-さらなる拡張性","5.4 さらなる拡張性",[811,958,960],{"id":959},"横方向の拡張列を増やす","横方向の拡張（列を増やす）",[15,962,963],{},"G7、H7にデータを追加したい場合：",[46,965,967],{"className":48,"code":966,"language":50,"meta":51,"style":51},"給与額面リスト, E7:H7,\n",[53,968,969],{"__ignoreMap":51},[56,970,971],{"class":58,"line":59},[56,972,966],{},[811,974,976],{"id":975},"縦方向の拡張行を増やす","縦方向の拡張（行を増やす）",[15,978,979],{},"D10に新しい項目を追加したい場合：",[46,981,983],{"className":48,"code":982,"language":50,"meta":51,"style":51},"項目リスト, D8:D10,\n",[53,984,985],{"__ignoreMap":51},[56,986,987],{"class":58,"line":59},[56,988,982],{},[811,990,991],{"id":991},"両方向の拡張",[15,993,994],{},"列も行も増やす場合は、両方を変更するだけ：",[46,996,998],{"className":48,"code":997,"language":50,"meta":51,"style":51},"給与額面リスト, E7:H7,\n項目リスト, D8:D10,\n",[53,999,1000,1004],{"__ignoreMap":51},[56,1001,1002],{"class":58,"line":59},[56,1003,966],{},[56,1005,1006],{"class":58,"line":195},[56,1007,982],{},[15,1009,1010],{},[18,1011,1012],{},"このように、範囲を変更するだけで自動的にスピル範囲が拡張されます！",[22,1014],{},[38,1016,1018],{"id":1017},"_55-変数定義の詳しい解説","5.5 変数定義の詳しい解説",[15,1020,1021],{},"LET関数で定義している各変数の意味を理解しましょう：",[811,1023,1025],{"id":1024},"変数1tblテーブルのデータ範囲","変数1：tbl（テーブルのデータ範囲）",[46,1027,1029],{"className":48,"code":1028,"language":50,"meta":51,"style":51},"tbl, table_給与所得控除!$D$4:$F$10,\n",[53,1030,1031],{"__ignoreMap":51},[56,1032,1033],{"class":58,"line":59},[56,1034,1028],{},[15,1036,1037,1040],{},[18,1038,1039],{},"意味："," 給与所得控除テーブルのデータ部分全体（3列×7行）を格納",[15,1042,1043],{},[18,1044,1045],{},"対応するExcelデータ（D4:F10）：",[95,1047,1048,1058],{},[98,1049,1050],{},[101,1051,1052,1054,1056],{},[104,1053,627],{},[104,1055,630],{},[104,1057,633],{},[114,1059,1060,1068,1076,1084,1092,1100,1108],{},[101,1061,1062,1064,1066],{},[119,1063,640],{},[119,1065,643],{},[119,1067,646],{},[101,1069,1070,1072,1074],{},[119,1071,651],{},[119,1073,654],{},[119,1075,657],{},[101,1077,1078,1080,1082],{},[119,1079,662],{},[119,1081,665],{},[119,1083,668],{},[101,1085,1086,1088,1090],{},[119,1087,673],{},[119,1089,676],{},[119,1091,679],{},[101,1093,1094,1096,1098],{},[119,1095,684],{},[119,1097,687],{},[119,1099,690],{},[101,1101,1102,1104,1106],{},[119,1103,695],{},[119,1105,643],{},[119,1107,700],{},[101,1109,1110,1113,1115],{},[119,1111,1112],{},"(空)",[119,1114,1112],{},[119,1116,1112],{},[22,1118],{},[811,1120,1122],{"id":1121},"変数2headerヘッダー行","変数2：header（ヘッダー行）",[46,1124,1126],{"className":48,"code":1125,"language":50,"meta":51,"style":51},"header, table_給与所得控除!$D$3:$F$3,\n",[53,1127,1128],{"__ignoreMap":51},[56,1129,1130],{"class":58,"line":59},[56,1131,1125],{},[15,1133,1134,1136],{},[18,1135,1039],{}," 列名の行を格納",[15,1138,1139],{},[18,1140,1141],{},"対応するExcelデータ（D3:F3）：",[95,1143,1144],{},[98,1145,1146],{},[101,1147,1148,1150,1152],{},[104,1149,627],{},[104,1151,630],{},[104,1153,633],{},[22,1155],{},[811,1157,1159],{"id":1158},"変数3収入金額列検索に使う列","変数3：収入金額列（検索に使う列）",[46,1161,1163],{"className":48,"code":1162,"language":50,"meta":51,"style":51},"収入金額列, table_給与所得控除!$D$4:$D$10,\n",[53,1164,1165],{"__ignoreMap":51},[56,1166,1167],{"class":58,"line":59},[56,1168,1162],{},[15,1170,1171,1173],{},[18,1172,1039],{}," 給与額面を検索する際に使う列（D列のみ）を格納",[15,1175,1176],{},[18,1177,1178],{},"対応するExcelデータ（D4:D10）：",[95,1180,1181,1187],{},[98,1182,1183],{},[101,1184,1185],{},[104,1186,627],{},[114,1188,1189,1193,1197,1201,1205,1209,1213],{},[101,1190,1191],{},[119,1192,640],{},[101,1194,1195],{},[119,1196,651],{},[101,1198,1199],{},[119,1200,662],{},[101,1202,1203],{},[119,1204,673],{},[101,1206,1207],{},[119,1208,684],{},[101,1210,1211],{},[119,1212,695],{},[101,1214,1215],{},[119,1216,1112],{},[15,1218,1219],{},[18,1220,1221],{},"なぜ変数にするのか：",[67,1223,1224,1230,1233],{},[70,1225,1226,1229],{},[53,1227,1228],{},"XMATCH"," でこの範囲は使うため、明確な変数名を付けることで数式が読みやすくなる",[70,1231,1232],{},"後で範囲を変更する場合、1箇所修正するだけで済む",[70,1234,1235],{},"テーブルの構造が分かりやすくなる",[22,1237],{},[811,1239,1241],{"id":1240},"変数4給与額面リスト横方向の配列","変数4：給与額面リスト（横方向の配列）",[46,1243,1245],{"className":48,"code":1244,"language":50,"meta":51,"style":51},"給与額面リスト, E7:F7,\n",[53,1246,1247],{"__ignoreMap":51},[56,1248,1249],{"class":58,"line":59},[56,1250,1244],{},[15,1252,1253,1255],{},[18,1254,1039],{}," 検索したい給与額面のリスト（横方向に並んでいる）",[15,1257,1258],{},[18,1259,1260],{},"例：",[67,1262,1263,1266],{},[70,1264,1265],{},"E7 = 5,000,000円",[70,1267,1268],{},"F7 = 6,000,000円",[22,1270],{},[811,1272,1274],{"id":1273},"変数5項目リスト縦方向の配列","変数5：項目リスト（縦方向の配列）",[46,1276,1278],{"className":48,"code":1277,"language":50,"meta":51,"style":51},"項目リスト, D8:D9,\n",[53,1279,1280],{"__ignoreMap":51},[56,1281,1282],{"class":58,"line":59},[56,1283,1277],{},[15,1285,1286,1288],{},[18,1287,1039],{}," 取得したい項目名のリスト（縦方向に並んでいる）",[15,1290,1291],{},[18,1292,1260],{},[67,1294,1295,1298],{},[70,1296,1297],{},"D8 = 「収入金額に乗じる率」",[70,1299,1300],{},"D9 = 「控除/加算金額」",[22,1302],{},[811,1304,1306],{"id":1305},"変数6rowmatch行の位置","変数6：rowMatch（行の位置）",[46,1308,1310],{"className":48,"code":1309,"language":50,"meta":51,"style":51},"rowMatch, XMATCH(給与額面リスト, 収入金額列, -1),\n",[53,1311,1312],{"__ignoreMap":51},[56,1313,1314],{"class":58,"line":59},[56,1315,1309],{},[15,1317,1318],{},[18,1319,1320],{},"処理内容：",[1322,1323,1324,1333,1340],"ol",{},[70,1325,1326,1329,1330,1332],{},[53,1327,1328],{},"給与額面リスト","（E7:F7）の各値を、",[53,1331,885],{},"（D4:D10）で検索",[70,1334,1335,1336,1339],{},"一致モード ",[53,1337,1338],{},"-1"," = 「完全一致または次に小さい値」で検索",[70,1341,1342],{},"各給与額面が、テーブルの何行目に該当するかを返す",[15,1344,1345],{},[18,1346,1260],{},[67,1348,1349,1352,1355],{},[70,1350,1351],{},"5,000,000円 → 収入金額列の4行目（3,600,001 ≤ 5,000,000 \u003C 6,600,001）",[70,1353,1354],{},"6,000,000円 → 収入金額列の4行目（3,600,001 ≤ 6,000,000 \u003C 6,600,001）",[70,1356,1357,1358],{},"結果：",[53,1359,1360],{},"rowMatch = {4, 4}",[22,1362],{},[811,1364,1366],{"id":1365},"変数7colmatch列の位置","変数7：colMatch（列の位置）",[46,1368,1370],{"className":48,"code":1369,"language":50,"meta":51,"style":51},"colMatch, XMATCH(項目リスト, header, 0),\n",[53,1371,1372],{"__ignoreMap":51},[56,1373,1374],{"class":58,"line":59},[56,1375,1369],{},[15,1377,1378],{},[18,1379,1320],{},[1322,1381,1382,1392,1397],{},[70,1383,1384,1387,1388,1391],{},[53,1385,1386],{},"項目リスト","（D8:D9）の各値を、",[53,1389,1390],{},"header","（D3:F3）で検索",[70,1393,1335,1394,1396],{},[53,1395,643],{}," = 「完全一致」で検索",[70,1398,1399],{},"各項目名が、ヘッダーの何列目にあるかを返す",[15,1401,1402],{},[18,1403,1260],{},[67,1405,1406,1409,1412],{},[70,1407,1408],{},"「収入金額に乗じる率」→ ヘッダーの2列目（E列）",[70,1410,1411],{},"「控除/加算金額」→ ヘッダーの3列目（F列）",[70,1413,1357,1414],{},[53,1415,1416],{},"colMatch = {2; 3}",[22,1418],{},[811,1420,1422],{"id":1421},"最終計算index","最終計算：INDEX",[46,1424,1426],{"className":48,"code":1425,"language":50,"meta":51,"style":51},"INDEX(tbl, rowMatch, colMatch)\n",[53,1427,1428],{"__ignoreMap":51},[56,1429,1430],{"class":58,"line":59},[56,1431,1425],{},[15,1433,1434],{},[18,1435,1320],{},[1322,1437,1438,1444,1454],{},[70,1439,1440,1443],{},[53,1441,1442],{},"tbl","（D4:F10のテーブル全体）から値を取得",[70,1445,1446,1449,1450,1453],{},[53,1447,1448],{},"rowMatch","（横方向の配列）と ",[53,1451,1452],{},"colMatch","（縦方向の配列）を組み合わせて、2次元スピル",[70,1455,1456],{},"2×2 = 4つの値を返す",[15,1458,1459],{},[18,1460,1461],{},"結果（E8:F9）：",[95,1463,1464,1476],{},[98,1465,1466],{},[101,1467,1468,1470,1473],{},[104,1469],{},[104,1471,1472],{},"E列 (5,000,000円)",[104,1474,1475],{},"F列 (6,000,000円)",[114,1477,1478,1489],{},[101,1479,1480,1485,1487],{},[119,1481,1482],{},[18,1483,1484],{},"8行目（率）",[119,1486,676],{},[119,1488,676],{},[101,1490,1491,1496,1498],{},[119,1492,1493],{},[18,1494,1495],{},"9行目（金額）",[119,1497,679],{},[119,1499,679],{},[22,1501],{},[38,1503,1505],{"id":1504},"_56-この数式の優れた点","5.6 この数式の優れた点",[67,1507,1508,1514,1520,1529,1535,1541,1547],{},[70,1509,1510,1513],{},[18,1511,1512],{},"1つの数式で複数の値を取得："," E8セルに入力するだけで縦横に自動計算",[70,1515,1516,1519],{},[18,1517,1518],{},"複合参照（$）がほぼ不要："," 変数を使うことでほとんどの$が不要に",[70,1521,1522,1525,1526,1528],{},[18,1523,1524],{},"同じ範囲を何度も書かない："," ",[53,1527,885],{}," を変数にすることで、重複を排除",[70,1530,1531,1534],{},[18,1532,1533],{},"読みやすい："," 変数名で何をしているかが一目瞭然",[70,1536,1537,1540],{},[18,1538,1539],{},"メンテナンスしやすい："," テーブル範囲の変更は1箇所修正するだけ",[70,1542,1543,1546],{},[18,1544,1545],{},"拡張性が非常に高い："," 範囲を変更するだけで縦にも横にも自動拡張",[70,1548,1549,1552],{},[18,1550,1551],{},"数式のコピー不要："," スピルが全て自動で処理",[22,1554],{},[25,1556,1558],{"id":1557},"_6-まとめ","6. まとめ",[15,1560,1561],{},"LET関数、XMATCH関数、INDEX関数、そして2次元スピル機能を組み合わせることで、従来のExcel数式よりも：",[38,1563,1564],{"id":1564},"可読性が向上",[15,1566,1567,1568,1570],{},"変数名を使うことで、数式が何をしているかが明確になります。特に ",[53,1569,885],{}," のような意味のある名前を付けることで、テーブルの構造が理解しやすくなります。",[38,1572,1573],{"id":1573},"保守性が向上",[15,1575,1576],{},"1箇所の修正で複数の結果が自動更新されます。同じ範囲を変数にまとめることで、範囲変更が1箇所で済みます。",[38,1578,1579],{"id":1579},"効率性が向上",[15,1581,1582],{},"2次元スピル機能により、縦横への数式のコピーが完全に不要になります。",[38,1584,1585],{"id":1585},"拡張性が飛躍的に向上",[15,1587,1588],{},"データの行や列を追加する場合も、範囲指定を変更するだけで自動的に対応できます。",[22,1590],{},[15,1592,1593],{},[18,1594,1595,1596,882,1598,1600],{},"特に、E7をE7:F7に変更するだけで横方向にも展開できる柔軟性と、",[53,1597,799],{},[53,1599,885],{}," にまとめることで同じ範囲を何度も書かなくて済む点は、大規模なデータ処理において非常に強力です。",[15,1602,1603],{},"これらの新しい関数を活用することで、より強力で柔軟なExcelシートを作成できます。ぜひ実際のデータで試してみてください！",[1605,1606,1607],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":51,"searchDepth":195,"depth":195,"links":1609},[1610,1611,1616,1621,1626,1631,1639],{"id":27,"depth":195,"text":27},{"id":35,"depth":195,"text":36,"children":1612},[1613,1614,1615],{"id":40,"depth":201,"text":41},{"id":64,"depth":201,"text":65},{"id":89,"depth":201,"text":90},{"id":258,"depth":195,"text":259,"children":1617},[1618,1619,1620],{"id":262,"depth":201,"text":263},{"id":278,"depth":201,"text":279},{"id":361,"depth":201,"text":362},{"id":378,"depth":195,"text":379,"children":1622},[1623,1624,1625],{"id":382,"depth":201,"text":383},{"id":398,"depth":201,"text":399},{"id":444,"depth":201,"text":445},{"id":517,"depth":195,"text":518,"children":1627},[1628,1629,1630],{"id":521,"depth":201,"text":522},{"id":528,"depth":201,"text":529},{"id":566,"depth":201,"text":567},{"id":586,"depth":195,"text":587,"children":1632},[1633,1634,1635,1636,1637,1638],{"id":590,"depth":201,"text":591},{"id":721,"depth":201,"text":722},{"id":808,"depth":201,"text":809},{"id":955,"depth":201,"text":956},{"id":1017,"depth":201,"text":1018},{"id":1504,"depth":201,"text":1505},{"id":1557,"depth":195,"text":1558,"children":1640},[1641,1642,1643,1644],{"id":1564,"depth":201,"text":1564},{"id":1573,"depth":201,"text":1573},{"id":1579,"depth":201,"text":1579},{"id":1585,"depth":201,"text":1585},null,"Excelの最新関数であるLET、XMATCH、INDEX、そして2次元スピル機能について、給与所得控除の計算を例に詳しく解説します","md",{},true,"/excel-functions-let-xmatch-index-guide",false,"2025-10-18T00:00:00.000Z",{"title":5,"description":1646},"2025-10/2025-10-18/excel-functions-let-xmatch-index-guide",[1656,1657,1658,1228,1659,1660,1661],"Excel","関数","LET","INDEX","スピル","データ処理","y1cweLNCMHuEoa4KfvWn0KRn0EC3bPNnHQdJTmsByZ4",[],[1665,1669,1673,1677,1681],{"title":1666,"path":1667,"publishedAt":1668},"HyperFormula と Excel の互換性ガイド - 対応関数と制限事項","/hyperformula-excel-compatibility-guide","2025-11-12T00:00:00.000Z",{"title":1670,"path":1671,"publishedAt":1672},"Claude Codeスキルを講座化する第3弾——「Excel風HTMLモック」レッスンを計画から本番公開まで一日で作った","/skill-to-lesson-excel-html-mock","2026-07-05T00:00:00.000Z",{"title":1674,"path":1675,"publishedAt":1676},"Excel貼り付けダイアログをHTMLで忠実再現 — 解説カードオーバーレイで操作を可視化","/excel-paste-dialog-rich-mocks","2026-05-08T00:00:00.000Z",{"title":1678,"path":1679,"publishedAt":1680},"Excel関数の統合インデックスページをNuxt4側に移植してfxアイコン巨大化バグを潰し、SEOタイトルを動的化した記録","/excel-functions-integrated-index","2026-05-04T00:00:00.000Z",{"title":1682,"path":1683,"publishedAt":1680},"Excel風HTMLモックの数式吹き出しヘルパーをClaude Codeのプロジェクトスキル化して11関数の解説に適用した記録","/excel-html-mock-skill-and-functions","https://log.eurekapu.com/og/blog/excel-functions-let-xmatch-index-guide.png?v=2025-10-18T00%3A00%3A00.000Z&title=Excel%E9%96%A2%E6%95%B0%E5%AE%8C%E5%85%A8%E3%82%AC%E3%82%A4%E3%83%89%20-%20LET%E3%83%BBXMATCH%E3%83%BBINDEX%E3%83%BB2%E6%AC%A1%E5%85%83%E3%82%B9%E3%83%94%E3%83%AB%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF%E3%82%92%E7%90%86%E8%A7%A3%E3%81%99%E3%82%8B&author=Kei%20Komatsu&sig=837d552cef8aa228",1785654657167]