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

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

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

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

Q&A

解決済

1回答

403閲覧

関数内で参照用に使っているシート名を特定のセルの文字+任意の文字で書きたい

ony

総合スコア13

Google スプレッドシート

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

0グッド

0クリップ

投稿2022/10/03 07:06

編集2022/10/04 04:47

前提

使用中シート名
[閲覧リスト] B列にa・b・cすべてのリスト(A列には分類としてa・b・cとLEFT関数で抽出済み)
[a_ID] 文字列先頭がaのリスト
[b_ID] 文字列先頭がbのリスト
[c_ID] 文字列先頭がcのリスト

=IFERROR(IMAGE(INDEX(a_ID!D:D,MATCH(B3,a_ID!E:E,0))),"No Image")

[閲覧リスト]内で上記の関数を使いイメージを取得できるようにしている(ここまではできている)

[閲覧リスト]B3の文字列と[A_ID]E:E内の文字列がマッチしたらa_IDのD:DにあるイメージURLを取得
という感じです

現状
分類Aには< a_ID!D:D ><a_ID!E:E >
分類Bには< b_ID!D:D ><b_ID!E:E >
分類Cには< c_ID!D:D ><c_ID!E:E >
を手動で入れているのですが

a~zまで増え、リストに追加も入るので毎度手動でやるのが困難になってきました

実現したいこと

**やりたいことは
[閲覧リスト]B列の関数内 < a_ID!D:D ><a_ID!E:E >のa_IDのaの部分を
[閲覧リスト]A列から取得し自動化したい

イメージ的にはA1&"_ID"みたいな感じなのですが シートを指定する文字列になってはくれず困っております

関数についてベーシックがわかってないもので…
どなたかご教授願えますでしょうか?
よろしくお願いします

以下わかりやすいよう書き直しいたしました

シート[a_ID]
・シートはa~zまで各シートがあります。シート[b_ID][c_ID]....[z_ID]
・各シートにGoogleDriveにある画像フォルダ内の画像名(aXXXX.jpg)とそのURLを
Apps Scriptで抽出
・フォルダ内に画像が追加されるたびにかAppsScriptで手動更新
(例:Driveのbフォルダに画像を追加→AppsScriptでシートb_IDを更新)

A列 抽出したJPG名
D列 抽出した画像URL
E列 A列をSUBSTITUTE関数で.jpgを抜いたファイル名

A列D列E列
1a15849.jpgURLa15849
2a35482.jpgURLa35482
3a89541.jpgURLa89541
4a84223.jpgURLa84223

シート[閲覧リスト]
B列はシート[a_ID]で増えたファイル名を手動で入れています
A列はB列の頭文字をLEFT関数を使って抽出してます

A列B列C列<画像を表示>
1aa15849IFERROR(IMAGE(INDEX(a_ID!D:D,MATCH(B3,a_ID!E:E,0))),"No Image")
2aa68547IFERROR(IMAGE(INDEX(a_ID!D:D,MATCH(B3,a_ID!E:E,0))),"No Image")
3bb87912IFERROR(IMAGE(INDEX(b_ID!D:D,MATCH(B3,b_ID!E:E,0))),"No Image")
4bb52483IFERROR(IMAGE(INDEX(b_ID!D:D,MATCH(B3,b_ID!E:E,0))),"No Image")
5bb95472IFERROR(IMAGE(INDEX(b_ID!D:D,MATCH(B3,b_ID!E:E,0))),"No Image")
6cc45866IFERROR(IMAGE(INDEX(c_ID!D:D,MATCH(B3,c_ID!E:E,0))),"No Image")
7cc78542IFERROR(IMAGE(INDEX(c_ID!D:D,MATCH(B3,c_ID!E:E,0))),"No Image")

やりたいこと
シート[閲覧リスト]で
B列にファイル名を入れると
A列は自動で頭文字を表示します。
そんな感じで
B列にファイル名を入れると
C列の関数内の小文字アルファベット部分がA列の小文字アルファベットとに自動で置き換わってほしい
です。

ご教授お願い致します。

Apps Scriptを使用はしていますが
コピペして書き換えただけのズブの素人なもので…
関数もろくにわかっておりません

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2022/10/03 13:50 編集

①各IDの具体的なフォーマットについて教えてください。 質問で例示されている「a_ID,b_ID,...」は、具体的には ・末尾は「_ID」で固定、 ・先頭の部分はa012345、b025462 のような小文字アルファベット1文字+文字列 ②「やりたいこと」に書かれている内容を言い換えると ・現状、[a_ID][b_ID]...[z_ID]の各シートに、追加や削除や修正が入るたびに、[閲覧リスト]内のデータを書き換えないといけない →これに手間がかかっているので、 [a_ID][b_ID]...[z_ID]の各シートからa_,b_...z_の部分を取り出して、[閲覧リスト]シートに反映させる、という処理を自動化したい ということかなと思ったのですが、この理解であっておりますでしょうか。 ③ 御所望の処理についてですが、純粋な関数だけを使って行うのは難しいと思われ、Google Apps Script(プログラム)の使用が前提となると考えます。それでも構わないでしょうか。
ony

2022/10/04 04:10

qnoir様 ご記入ありがとうございます。 分かりづらくて申し訳有りませんでした ①はいそのとおりです ②たぶん仰っていることと同じだと思うのですが… もう少しわかりやすく書き直しました 回答は解答欄に入力しましょうと書いてあるので解答欄に書かせて頂きます なにぶん使い慣れていないもので…すみません
guest

回答1

0

ベストアンサー

・方針
「INDIRECT」関数を使用します。
たとえば、「INDIRECT(A1&"_ID!D:D")」とすることで、A1セルに「a」が入っている場合は、「a_ID!D:D」と解釈されます。

・具体的なやりかた
[閲覧リスト]シートのC1 セルに下記の数式を入れます。

=if(B1<>"",IFERROR(IMAGE(INDEX(INDIRECT(A1&"_ID!D:D"),MATCH(B1,indirect(A1&"_ID!E:E"),0))),"No Image"),"")

そして、C2 セル以降のC列には、C1 セルの内容をコピーして貼り付けます。

上記のやり方でいかがでしょうか。

投稿2022/10/04 13:59

編集2022/10/04 14:00
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ony

2022/10/05 00:53

qnoir様 すごい!解決しました!!! 貴重なお時間割いてご教授頂きありがとうございます! 本当に感謝の気持でいっぱいです。 一つ理解できないところがあるのですが ifの後のB1<>""の部分はどういったことなのでしょうか? もしお時間がありましたら後学のために教えていただけると幸いです。
退会済みユーザー

退会済みユーザー

2022/10/05 03:19

B1<>““ の部分は、B1セルが空白ではない場合、という意味です。 B1セルが空白の場合、その行には何もデータがないということなので、セルには何も文字が表示されないようにしています。 (これを行わないと、データのない行もNo Imageと表示されてしまいます。)
ony

2022/10/05 08:39

なるほど。勉強になります。 丁寧に教えて頂きありがとうございました。 ほんとに助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問