質問する
0

関数Switchの使い方について

質問日 2019-12-22 02:24:04 +0100

naoko.mima のGravatar画像

updated 2019-12-22 14:58:26 +0100

nogajun のGravatar画像

こんな表がある。

┌--------┬----------------┬-----------------------┐
| あ ▼| number入力  |   ルックアップ   |
├--------┬------┬--------┬-----------------------┐
| あ  |   | い  |    | う |   |
├--------┬------┬--------┬--------┬------┬-----┤
| number| name| number| name| number| name|
| number| name| number| name| number| name|
| number| name| number| name| number| name|
| number| name| number| name| number| name|
| number| name| number| name| number| name|
└---------------------------------------------------┘

A1のプルダウンで「あ」を選んだら「あ」のリスト(A:B) 「い」を選んだら「い」のリスト(C:D)から、B1に入力した値をLookUPしてC1にピックアップしたい。

そこでC1に次のような関数を入力したが、fxボタンを押して途中経過を見るとLookupされているのに、N/Aと表示されてしまう。 何を間違っているのか教えてください。

C1入力値:=SWITCH(A1,A2,VLOOKUP(A2,$A$4:$B$60,2,0),C2,VLOOKUP(A2,$C$4:$D$60,2,0),E2,VLOOKUP(A2,$E$4:$F$60,2,0))

書式は一致しており、余計な空白が入ったりもしていません。 なおこれをコピーしてGoogleスプレッドに貼り付けると動作します。 Switchに複数のリストを使うのはできないのでしょうか。

edit retag flag offensive close merge delete

Comments

うひゃあ汚い(><) お手数ですがメモ帳にでも貼り付けてください…(滝汗

naoko.mima のGravatar画像naoko.mima ( 2019-12-22 02:25:08 +0100 )edit

VLOOKUPの第一引数は全てB1では?

So のGravatar画像So ( 2019-12-22 09:29:51 +0100 )edit

あ、ごめんなさい。この表だとB2です。(書き直し忘れた…)

naoko.mima のGravatar画像naoko.mima ( 2019-12-22 14:33:04 +0100 )edit

すいませーん。ここのモデレーターですー。表を修正しようとしたら、ちょっとヘンになってしまいました。>< ごめんなさい…

nogajun のGravatar画像nogajun ( 2019-12-22 15:09:31 +0100 )edit

自信がない独り言。 LibreOfficeにおける、VLOOKUPの評価のタイミングはいつだ?

IF関数同様SWITCH関数は短絡評価をするのか?それとも、引数を全て評価した後、関数の計算を通常通り行う処理なのか?

https://opengrok.libreoffice.org/xref...

最初のVLOOKUP関数でN/Aが出てそれをPUSHした場合、これはエラーを発生させないのか?

https://opengrok.libreoffice.org/xref...

himajin100000 のGravatar画像himajin100000 ( 2019-12-22 15:15:32 +0100 )edit

見辛いですが,当面は入れ子のIFを使ってください。

IF関数同様SWITCH関数は短絡評価をするのか?

しないようです。(https://bugs.documentfoundation.org/show_bug.cgi?id=111675)

So のGravatar画像So ( 2019-12-23 02:48:08 +0100 )edit

oh…そうなんですね。 IFか~これはメモ帳が火を噴くやーつ(笑)(テストファイルは2パターンですが実際は5パターン)

ありがとうございました。 バグ報告もありがとうございます。

naoko.mima のGravatar画像naoko.mima ( 2019-12-24 03:57:43 +0100 )edit

1 Answer

0

回答日 2019-12-22 15:15:40 +0100

So のGravatar画像

updated 2019-12-22 15:25:06 +0100

VLOOKUP単体だと正しく動作しますか? ファイルを複製して,C1を
=SWITCH(A1,A2,VLOOKUP(A2,$A$4:$B$60,2,0),C2,VLOOKUP(A2,$C$4:$D$60,2,0),E2,VLOOKUP(A2,$E$4:$F$60,2,0))
のように編集したら期待した結果になるでしょうか?
それが上手くいったら
=SWITCH(A1,A2,VLOOKUP(A2,$A$4:$B$60,2,0),C2,VLOOKUP(A2,$C$4:$D$60,2,0),E2,VLOOKUP(A2,$E$4:$F$60,2,0))
=SWITCH(A1,A2,VLOOKUP(A2,$A$4:$B$60,2,0),C2,VLOOKUP(A2,$C$4:$D$60,2,0),E2,VLOOKUP(A2,$E$4:$F$60,2,0))
のように元の状態に近付けて,どこで問題が起こるか確かめてみてください。

edit flag offensive delete link もっと

Comments

いえいえー 一応テキストエディタでは「なんとなくそれっぽい」表になるようにしてました。 お手数をおかけします。

SWITCHをのぞいた場合 エラーになりません

>SWITCH一段階だけの場合 エラーになりません >2段階にする エラーです

というか、何度もやっていたら、 ABからのピックアップは出来て他がダメとか。 じゃあといってリストをABとCDを入れ替えたらCDだけ動くとか。 なんだかおかしなことに・・・。 テスト用ファイルをつけてみます・・・おま環? 無題 1.ods スクショはこちら・・・ss.jpg

naoko.mima のGravatar画像naoko.mima ( 2019-12-22 18:21:55 +0100 )edit
ログイン/サインアップして回答する

質問ツール

2 followers

Stats

Asked: 2019-12-22 02:24:04 +0100

Seen: 47 times

Last updated: Dec 23 '19