質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

解決済

2回答

591閲覧

Googleスプレッドシートの関数について

Hurinamine

総合スコア8

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2020/01/17 09:06

特定の文字列があったら、特定の文字を表示するようにしたい。
A1 MANABIBAG
A2 TABLECLOTHBLUE
A3 APPLEJUICE
and more..

B列に、AのセルにBAGが含まれていたらBAG、TABLECLOTHが含まれていたらTABLECLOTHと表示させたい。
SWITCHをつかえばいけるかと思ったのだが

=switch(find(A1,"CLOTH")>1,"TABLECLOTH",find(A1,"BAG")>1,BAG,find(A1,"juice")>1,"JUICE")

CLOTHが見つからないのでVALUEになってしまい、エラーなら次、という風に動いてくれない。
SwitchやめてIFに書き換えても同じく。

どう書けばいいですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

ありがとうございます。
自己解決したのですが、書いて頂いたもののほうがシンプルでいいかも…
NOTを使ってできたらいいなあとは思いましたが、考えが足りなかったようです。

自己解決ではこうしました

=if( COUNTIFs(A1,"*CLOTH*"),"TABLECLOTH",if( COUNTIFs(A1,"*JUICE*"),"JUICE")(以下略) )

SWITCHは一致しなければ次と書かれているので、「最後までスイッチして一致しなかったらエラー」という認識だったのですが(読んでもそうしか受け取れない…)、実際は最初の式CLOTHで一致しなかったらVALUEになってしまうんですよね

投稿2020/01/18 01:31

Hurinamine

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

SWITCH関数の使い方を勘違いされてるかと思います。
リンクを一度、ご確認された方がよいかと思います。

私の案ですが...
FIND関数のドキュメントに以下のように書いてあります。

検索で一致が見つからなかった場合は、IFERROR などの関数を使用してエラーを確認することをおすすめします。

エラーを判定する関数を使えばよさそうです。
ISERRORを使って書いてみました。

=if(isError(find("BAG",A1)),if(isError(find("TABLECLOTH",A1)),"ノーヒット","TABLECLOTH"),"BAG")

追記

IFS関数で条件分岐すると、直観的でいいかもしれません。
ISERRORにNOTをつけて、論理値を反転させてます。
IFS関数は条件にヒットしなかった場合、エラーを返すので、最後の条件は必ず成立させて、結果を表示するようにしました。

見やすいように、改行を入れましたので、セルに入力する時は、改行を除いてください。

SPREADSHEET

1=IFS( 2 NOT(ISERROR(FIND("BAG",A1))),"BAG", 3 NOT(ISERROR(FIND("TABLECLOTH",A1))),"TABLECLOTH", 4 NOT(ISERROR(FIND("JUICE",A1))),"JUICE", 5 true,"ヒットしませんでした." 6)

投稿2020/01/17 12:22

編集2020/01/17 13:21
KazuSaka

総合スコア640

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問