作品名から価格を引く式|VLOOKUP・INDEX/MATCH・XLOOKUP のどれを使うか
公開日: 2026-11-11
販売の記録を1行ずつ書くとき、作品名を入れたら価格や原価が自動で入ると、打ちまちがいも手間も減ります。表から値を引く式には、VLOOKUP・INDEX と MATCH の組み合わせ・XLOOKUP の3つの書き方があります。
この記事では、作品の表から価格を引く式を3つの書き方で並べ、見つからないときの扱いと、どれを使うと困りにくいかを、例の表で説明します。
例の作品の表
「作品」のシートに、作品名・分類・1点の原価・ふだんの価格・作った数を書いておきます。
ここから、作品名(この例では「ブローチ」)の「ふだんの価格」(D列)を引きます。
3つの書き方
別のシートの A2 に作品名が入っているとして、式は次のとおりです。
VLOOKUP: =VLOOKUP(A2,作品!$A$2:$D$201,4,FALSE)
INDEX/MATCH: =INDEX(作品!$D$2:$D$201,MATCH(A2,作品!$A$2:$A$201,0))
XLOOKUP: =XLOOKUP(A2,作品!$A$2:$A$201,作品!$D$2:$D$201)
どれも結果は 2,000 で同じです。違いは書き方と、使えるソフトです。
- VLOOKUP は、表のいちばん左の列(作品名)で探し、左から数えて4列目を返します。最後の
FALSEを省くと「近い値」を探す動きになり、表が並べ替えられていないと別の作品の価格が返ることがあります。作品名で探すときは、必ずFALSE(または0)を付けます。また、表に列を1つ挿入すると「4列目」がずれて、別の列の値が返ります - INDEX/MATCH は、
MATCHで作品名が何行目にあるかを探し(最後の0は「完全に同じもの」)、INDEXでその行の価格を取り出します。探す列と返す列を別々に書くので、列を挿入してもずれず、作品名の列より左の列も返せます - XLOOKUP は、探す列と返す列を書くだけで、完全に同じものを探すのが初めからの動きです。いちばん読みやすい書き方ですが、使えるのは Excel 2021 以降・Microsoft 365 と、Google スプレッドシート、LibreOffice の 24.8 以降です。Excel 2019 以前で開くと、式がエラーになります
作品名に * や ? が入っていると、VLOOKUP の FALSE や MATCH の 0 でも、Excel と Google スプレッドシートではワイルドカード(どんな文字にも当たる記号)として扱われ、別の作品に当たることがあります(LibreOffice では、オプションの設定によります)。作品名には * ? ~ を使わないのが無難です。
LibreOffice で、式の区切りが , ではなく ; の設定になっている場合は、, を ; に置き換えて入力します。
価格を変えたとき、過去の記録も変わる
販売記録の価格を作品の表から式で引いていると、作品の表で値上げをしたとき、過去の行の価格も新しい値段で計算し直されます。原価も同じです。過去の売上を変えたくないときは、売れたときの価格を記録の行に数字で書いておき(式で引いた値をコピーして「値として貼り付け」する方法もあります)、作品の表は「次に入力するときの初めの値」として使ってください。
見つからないときの扱い
表に無い作品名(この例では「リング」)を探すと、VLOOKUP と INDEX/MATCH は #N/A のエラーになります。そのまま合計の式で足すと、合計まで #N/A になります。
空にする: =IFERROR(VLOOKUP(A2,作品!$A$2:$D$201,4,FALSE),"")
XLOOKUP で書く場合: =XLOOKUP(A2,作品!$A$2:$A$201,作品!$D$2:$D$201,"未登録")
IFERROR(式,"")は、エラーのときに空にします。INDEX/MATCH でも同じように包めます- XLOOKUP は、4つ目に「見つからないときの値」を書けます
ただし、エラーを空や 0 にすると、作品名の打ちまちがいに気づきにくくなります。売上の計算に使うときは、0 にせず「未登録」のような目に見える文字にするか、在庫を販売記録から減らす記事のように、表に無い名前を数えて確かめる列を作っておくと安心です。
見た目は同じなのに見つからないとき
「ブローチ」が表にあるのに #N/A になるときは、名前の後ろや前に空白が入っていることがよくあります。この例の8行目は、「ブローチ 」と後ろに空白が1つ入っているので見つかりません。
=VLOOKUP(TRIM(A2),作品!$A$2:$D$201,4,FALSE)
TRIM で前後の空白を除いてから探すと、2,000 が返ります。ただし、Excel の TRIM が除くのは半角の空白で、全角の空白(「ブローチ 」)は残ることがあります。また、この式で直せるのは探す側の名前だけで、作品の表の側に空白が入っているときは、表の名前を直します。全角と半角のちがい(「ブローチ」と「ブローチ」など)は TRIM では直らないので、作品名はプルダウン(入力規則)で作品の表から選ぶようにしておくと、こうしたずれが起きません。
どれを使うか
- 自分だけが Excel 2021 以降・Microsoft 365・Google スプレッドシートで使うなら、XLOOKUP がいちばん読みやすく、まちがえにくい書き方です
- ほかの人に配る表や、古い Excel でも開く表なら、INDEX/MATCH が無難です。Excel 2007 以降・Google スプレッドシート・LibreOffice のどれでも動き、列の挿入でもずれません
- VLOOKUP は広く知られていて読める人が多いので、既にある表を直すときはそのままでもかまいません。その場合は
FALSEを付け忘れていないかだけ確かめてください
作った表を、そのまま使いたい方へ
この記事の画面は、販売記録・月別・販売先別の集計と、作品ごとの在庫までを1つにまとめたテンプレートで作りました。このテンプレートは、配った先の Excel の版を選ばないよう、手数料率や原価を引く式に INDEX/MATCH を使っています。表を一から作る時間を省きたい方は、ハンドメイド売上・在庫管理シートもご覧ください。
カテゴリ: 式の書き方

