• 締切済み
※ ChatGPTを利用し、要約された質問です(原文:エクセルで2つのセルを連動させる。)

エクセルで2つのセルを連動させる方法はあるでしょうか?

このQ&Aのポイント
  • エクセルでB10~B23のセルをB3でプルダウンで選択できるようにしましょう。また、D10~D23をD3でプルダウンで選択できるようにします。B3でB10を選択した場合、D3はD10に変わるようにするため、IF関数を使用します。しかし、D3でD10を選択した場合、B3をB10に変更する方法については循環参照になってしまいます。両方のセルで連動させる方法があるかどうか知りたいです。
  • エクセルで2つのセルを連動させる方法を教えてください。B10~B23のセルをB3で選択できるようにし、D10~D23をD3で選択できるようにします。B3でB10を選択した場合、D3はD10に変わるようにしたいのですが、D3でD10を選択した場合、B3をB10に変更する方法がわかりません。循環参照になってしまいます。両方のセルで連動させる方法はありますか?
  • エクセルで2つのセルを連動させる方法について教えてください。B10~B23のセルをB3でプルダウン形式で選択できるようにし、D10~D23をD3でプルダウン形式で選択できるようにします。B3でB10を選択した場合、D3はD10に変わるようにするため、IF関数を使います。しかし、D3でD10を選択した場合、B3をB10に変更する方法がわかりません。循環参照になってしまいます。両方のセルで連動させる方法はありますか?

みんなの回答

  • yamada82
  • ベストアンサー率28% (15/53)
回答No.4

別のセルでB列 or D列を入力or選択し、さらに別のセルにB10とかD10とかの入力セルを設ける。 B3とD3にはIF関数で下記の動きをする式を入力しておいて自動表示。 B列を入力した時:B3は入力した値を表示、D3は入力した値を検索して連動。 D列を入力した時:B3は入力した値を検索して連動、D3は入力した値を表示。 自分がもしこれを表現するならこんな感じですかね。 B列/D列はプルダウンで選択させるし、入力セルも選択した列に連動させたプルダウンかな。

  • kon555
  • ベストアンサー率51% (1845/3565)
回答No.3

 原理的に不可能ではありませんが、正直オススメはしません。  まずエクセルの関数での処理では不可能です。貴方が書かれているように循環参照になってしまい、連動させられません。  VBAでなら「セルが変更になった時」という形で実行させる事が出来るため、お望みの機能を実現する事自体はできますが、『一方に何が入力された時にもう一方をどう書き換えるか』を逐一指定せねばならず、極めて煩雑です。  一応サンプルとして組んでみました。下記のコードを標準モジュールに貼り付ければ、B3セルを「B10」に書き換えるとC3セルは「C10」になります。  またC3セルを「C15」にするとB3セルが「B15」になります。  これを数字の組み合わせの数だけ行えば、お望みの動作は実現できます。繰り返しますが、オススメしません。 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Intersect(Target, Range("B3:C3")) Is Nothing Then  Exit Sub Else  Application.EnableEvents = False  If Not Intersect(Target, Range("B3")) Is Nothing Then   If Range("B3").Value = "B10" Then Range("C3").Value = "C10"  End If  If Not Intersect(Target, Range("C3")) Is Nothing Then  If Range("C3").Value = "C15" Then Range("B3").Value = "B15"  End If End If Application.EnableEvents = True End Sub

noname#244033
質問者

お礼

回答ありがとうございます。 マクロまで作っていただいて恐縮です。 やったことないのでできるかわかりませんが、試してみます。

  • SI299792
  • ベストアンサー率47% (780/1631)
回答No.2

なかなか回答がつかないのは、カテゴリーを、その他(ソフトウエア)にしてあるからです。Excel の得意な人の中には、Excel(エクセル)に関する質問、以外見ない人もいます。全ての人が全ての質問を見れるほど暇人ではありません。 両方に関数を入れる事自体不可能です。値を入れれば関数は消えます。 この問題を解決するにはVBA しかありません。 シートモジュールに入れて下さい。 シート名の所を右クリック、コードの表示を選んで、そこに入れて下さい。 Option Explicit ' Private Sub Worksheet_Change(ByVal Target As Range)   Dim Search As Range '   If Target.Address <> "$B$3" And Target.Address <> "$D$3" Then     End   End If '   Application.EnableEvents = False   Set Search = Target.Offset(7).Resize(14). _     Find(Target, LookIn:=xlValues, LookAt:=xlWhole) '   If Not Search Is Nothing Then     Cells(3, 6 - Target.Column) = Cells(Search.Row, 6 - Target.Column)   End If   Application.EnableEvents = True End Sub

noname#244033
質問者

お礼

回答ありがとうございます。 やはりVBAですか。私も勉強したいです。 プログラミング言語みたいで難しそうなので 挫折しそうです。 とりあえず計算する箇所を二通り用意して、連動はあきらめました。 このプログラムは試してみます。

  • toms9999
  • ベストアンサー率39% (41/104)
回答No.1

回答がつかないのは、エクセル神も苦労されているのかも・・・神の降臨に期待 B3にD3を参照する式とD3にB3を参照する式を入力すると循環参照になります。 私なら、循環参照を書式やリンクで回避します。 B3プルダウンのみD3にIF関数、B4にIF関数でD4プルダウンにして書式で色分けし目視で区別してもらう。 もしくは、 B3とD3のセルはリンクでそれぞれ違う場所に飛ばし、別な場所でプルダウンで呼び出す方法を取ります。

noname#244033
質問者

お礼

回答ありがとうございます。 プルダウン設定したセルに関数を入れても、 すぐに崩れるという、基本的な事がわかっていませんでした。 これは無理ですね。

関連するQ&A