• ベストアンサー

結合したセルの左上以外のセルから値を参照したい

エクセルで、セルA1:C3を結合しています。 =A1 として参照する場合には、結合セルの値を参照できますが、 =B1とか=A2とかのように参照すると、0が表示されてしまいます。 B1やA2のセルを指定した場合にも、結合セルの値を参照できるような シート関数はないのでしょうか。 =KANSU(B1)とか=KANSU(A2)とした場合に、 結合セルの値を得られるシート関数を教えてください!

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

セル関数だけでやるいい方法もありそうですが取り急ぎユーザ関数を作って見ました。 Public Function KANSU(rRange As Range)   KANSU = Range(rRange.MergeArea.Item(1).Address(0, 0)) End Function

その他の回答 (3)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 結合したセルの左上隅のセルを参照するのではなく、指定した範囲の中で、データーが入力されているセルの内、最も下にあるセルを参照する関数では駄目でしょうか?  例えば、A1:C3が結合されていて、それ以下も同様に、A4:C6、A7:C9、A10:C12・・・という具合に結合されている場合において、どの行でもA列にしかデーターは存在しませんから、参照先にはA列のみを指定して、 =KANSU(A2)の様な値を求める際には、A$1:A2の範囲を指定すると、A1~A2の範囲にあるデーターが入力されているセルの中で最も下にあるA1セルの値を取り出し、 =KANSU(C3)の様な値を求める際には、A$1:A3の範囲を指定すると、A1~A3の範囲にあるデーターが入力されているセルの中で最も下にあるA3セルの値を取り出し、 =KANSU(B12)の様な値を求める際には、A$1:A12の範囲を指定すると、A1~A12の範囲にあるデーターが入力されているセルの中で最も下にあるA10セルの値を取り出す という様な関数です。  但し、結合セルにデーターが入力されていない場合には、その一つ上の結合セルの値を参照してしまいます。  それから、結合セル内に入力されているデーターが数値データーであるのか、それとも、文字列データーであるのかによって、異なる関数となります。  もし、A~C列の結合セルに入力されているデーターが、全て数値データーである場合には、KANSU(A1)やKANSU(B1)、KANSU(C1)に相当する関数は、次の様な関数となります。 =VLOOKUP(9^99,$A$1:$A1,1)  この関数中の9^99の部分は、A~C列に入力される可能性がある最大の数値を、確実に上回る数値であれば、何でも構いません。  又もし、A~C列の結合セルに入力されているデーターが、全て文字列データーである場合には、KANSU(A1)やKANSU(B1)、KANSU(C1)に相当する関数は、次の様な関数となります。 =INDEX($A:$A,MATCH("゛",$A$1:$A1,-1))  この関数中の"゛"の部分は、A~C列の結合セルに入力される筈のない文字列であれば、何でも構いません。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

エクセルでは、セル結合すると、左上隅のセルの値以外は、消えてしまうのではなかったですか。 (OOOのCALCでは、参照できるように保持されているようですが。) だから質問のような関数は無い。話題にもなってないと思う。 (結合したとき各セルの元の値を結合してほしい、というのは、たまにでる質問) ーー MergeAreaの左上隅セル以外のセル参照でも、左上隅セルと同じ値を返すのなら ユーザー関数で Function mrg(a) Application.Volatile If a.Address = a.MergeArea.Address Then mrg = a.Value Else mrg = a.MergeArea.Value End If End Function で良さそうだが (1)(小生の場合)少ない場合でしかテストして無いくて、テストが十分でない (2)今まで見たことが無い要求で、個人的な興味問題で、使うのは、どうかなと思うが。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

裏ワザ的になりますが、以下のような数式貼り付け操作で結合セルのすべてのセルに同じ値を挿入する方法が簡単だと思われます。 例えば例示のデータなら、空白セルのE2セルとF1セルにそれぞれ「=E1」と入力して下方向および右方向にオートフィルコピーし、このセル範囲を選択して右クリック「コピー」A1セルを選択して、右クリック「形式を選択して貼り付け」で「数式」にして「空白セルを無視する」にチェックを入れてOKしてください。 Excel2007以降で、実際の結合セルが行単位または列単位だけの場合は、上記より簡単な操作で一括して空白セルにデータを追加することも可能です。 #Excelのバージョンによって使用できる機能や操作方法が大きく異なりますので、質問の際には必ずバージョンを明記するようにしましょう。

関連するQ&A