[[20240217233017]] 『Googleスプレッドシートの数式が反映されない』(とら) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Googleスプレッドシートの数式が反映されない』(とら)

すみません、エクセルではなく、Googleスプレッドシートの計算式について質問です。
一部反映されずエラーが起きているので困っています。

1つのシートに2つのタブがあります。
タブ1. マスターシート  タブ名称 Menu List
タブ2. サブシート タブ名称 computation

タブ1 Menu List マスターシートとして各メニューを全て網羅

A列 B列 C列 D列 BA列
縦列      横     AランチID BランチID CランチID  … ZランチID
AランチID             1
BランチID                   1
CランチID                       1

ZランチID                            1

タブ2 computation サブシートとして1日の売上数を把握。エクセルの1日の注文データを時系列で貼り付けるのでメニューは順不同。
A列 B列 C列 D列 BA列
縦列       横      AランチID BランチID CランチID  … ZランチID
CランチID                         1
BランチID                   1
AランチID              1

ZランチID                               1

タブ2のメニューの各列には以下計算式を入れています。
=IF(A5="","",VLOOKUP(A5,'Menu List '!$A$4:$EG$338,6))

この場合、A5(検索値)のメニューのマスターシートの範囲の6列目にある1を拾う。
A5がCランチIDであれば、CランチIDの列に1が表示される形です。

ところが、エラーで数値を拾ってくれない列があります。
=IF(A5="","",VLOOKUP(A5,'Menu List '!$A$4:$EG$338,22))
エラーが出るのがBランチだとしたら、下記のように空欄になってしまいます。
A列 B列 C列 D列 BA列
縦列       横      AランチID BランチID CランチID  … ZランチID
CランチID                         1
BランチID                   
AランチID              1

ZランチID                               1

数式もあっていて、Menu ListのBランチIDもきちんと数字になっていますし
原因がさっぱりわかりません。
どなたか改善方法を教えていただけませんでしょうか。

どうぞよろしくお願いいたします。

< 使用 Excel:unknown、使用 OS:unknown >


>1つのシートに2つのタブがあります。
シートがファイルでタブというのがシート名ではないのですか。
>エクセルの1日の注文データを時系列
だったら行(横)は日付データではないのですか。
>エラーで数値を拾ってくれない列があります。

Googleスプレッドシートだったらそちらに問い合わせてください。

(わけわからん) 2024/02/18(日) 08:44:10


 >数式もあっていて、Menu ListのBランチIDもきちんと数字になっていますし
 >原因がさっぱりわかりません。
VLOOKUPでありがちなエラーは検索範囲がずれているとか検索キーが微妙に違っているとかですが、
 >=IF(A5="","",VLOOKUP(A5,'Menu List '!$A$4:$EG$338,22))
本当にそうなっていれば別ですが、多分相対参照でズレているのではないですか?もしくは22ではなく2なのでは?
 =IF($A5="","",VLOOKUP($A5,'Menu List'!$A$4:$EG$338,2,FALSE))として
右にフィルコピー後 指数2の部分を変更でもできますが、その式を入れ直すのは手間がかかりますしそれだけ範囲が広いと間違いの元です。

 GoogleスプレッドシートならXLOOKUPが使えるので
 XLOOKUP(検索キー,検索範囲,結果範囲,見つからない場合の値,一致モード)
一例で
 =IF(A5="","",XLOOKUP(A5,'Menu List'!$A$4:$A$29,'Menu List'!$B$4:$AA$29,""))とか。
その使い方だと
 =IF(A5="","",XLOOKUP(A5,'Menu List'!$A$4:$A$29,'Menu List'!$B$4:$AA$29))
でエラーもわかるようにしておいたほうがいいかもですが。
範囲は実際の範囲に合わせてください。

 ※なお、右はコピーしなくても勝手に展開するので最初の数式は全部クリアしておいて
下にフィルコピーしてください。

(檸檬) 2024/02/19(月) 08:54:07


 >=IF(A5="","",XLOOKUP(A5,'Menu List'!$A$4:$A$29,'Menu List'!$B$4:$AA$29,""))
 の方はIF(A5="","",が不要でした。
 =XLOOKUP(A5,'Menu List'!$A$4:$A$29,'Menu List'!$B$4:$AA$29,"")

 VLOOKUPを使うなら
 =IFERROR(VLOOKUP($A5,'Menu List'!$A$4:$AA$29,COLUMN(B1),FALSE),"")
 として右へ→下へ↓フィルコピー。

 範囲は実際の範囲に合わせてください。
(檸檬) 2024/02/28(水) 10:32:43

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.