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

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

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

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

参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

関数

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

Q&A

1回答

979閲覧

動的にセルを参照したいのですが…(Googleスプレッドシート)

TKAI

総合スコア4

Google スプレッドシート

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

参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

関数

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

0グッド

1クリップ

投稿2020/03/01 08:16

編集2020/03/02 14:31

前提・実現したいこと

編集シートに入力したセルを
共有するシートに反映させたいです
日付と場所で交点に名前から
日付と名前で交点に場所へ反映が目的です

'編集'!シート
日付欄|場所1|場所2|場所3|場所4|
4/1|名前A|□□□|名前C|★★★|
4/2|名前B|名前D|□□□|□□□|
4/3|名前C|□□□|名前A|名前B|

'反映'!シート
日付欄|名前A|名前B|名前C|名前D|
4/1|場所1|□□□|場所3|★★★|
4/2|□□□|場所1|□□□|場所2|
4/3|場所3|場所4|場所1|□□□|

編集シートのC3をE2(★★★)に移動した場合
反映シートのE3がE2(★★★)に自動的に移動して欲しいです

発生している問題・エラーメッセージ

空白のまま返ってきます

試したこと

'反映'!B2に
=if('編集'!B2:E2=B1,'編集'!B1:E1,"")

補足情報(FW/ツールのバージョンなど)

Googleスプレッドシート利用

もし、関数で可能であれば、ご教授お力添えのほど
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

以下の関数を反映シートのB2に入れてから、B2をコピーしてその他のセルにペーストしてみてください。

function

1=if(COUNTIF('編集'!$B2:$E2, B$1)>0,index('編集'!$B$1:$E$1, 1, match(B$1, '編集'!$B2:$E2, 0)), "")

関数を複数組み合わせているので解説します。
一番外側の関数は「if」です。

function

1=if(COUNTIF('編集'!$B2:$E2, B$1)>0, ◎, ◆)

この関数は「もし『COUNTIF('編集'!$B2:$E2, B$1)>0』がtrueなら◎、そうでなければ◆をセルに入れる」という意味。

「COUNTIF('編集'!$B2:$E2, B$1)」とは、編集シートのB2〜E2の中に反映シートのB1がいくつあるか、をカウントしています。
つまり「編集シートの4月1日の行に名前Aがいくつあるか」という意味です。

すなわち「編集シートの4月1日の行に名前Aが1つでもあれば◎を、ひとつもなければ◆を入れる」という処理を行っています。

***

◎の部分では名前Aが入っている位置を特定して、「場所1」〜「場所4」のどこなのかを判定してセルに入力する処理を行っています。
◎の中身は以下のようになっています。

function

1index('編集'!$B$1:$E$1, 1, match(B$1, '編集'!$B2:$E2, 0))

まずindex関数の説明から。

function

1index(【範囲】, 【何行目か】, 【何列目か】)

index関数は指定された範囲の中で、行と列を数字で指定するとそのセルの値を返してくれるものです。

【範囲】…'編集'!$B$1:$E$1
⇒編集シートの「場所1」〜「場所4」が書いてあるセルの範囲

【何行目か】…1
⇒上で指定した範囲は1行しかないので当然「1」行目と入力

【何列目か】…match(B$1, '編集'!$B2:$E2, 0)
⇒編集シートのB2〜E2(4月1日の行)の中にB1(名前A)が何列目にあるかを判定しています

このようにして名前Aが場所1〜場所4のどこにあるのか、または存在しないのかを判定して値を入れています。

投稿2020/03/09 04:49

KimTom

総合スコア134

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問