出産前後の痔にはご注意!

先日は以下の質問でお世話になりました。
http://oshiete.goo.ne.jp/qa/8846917.html

さっそく作業に取り掛かったのですが、以下の画像のように結合されたセルをプルダウンのリストにしようとすると"リストの元の値は、区切り文字で区切られたリストか、または単一の行または列の参照でなければなりません。"と表示されてしまい、エラーとなってしまいます。

つまり、結合されたセルをプルダウンのリストにすることは出来ないのでしょうか?

面倒な質問かとは思いますが、どうぞ宜しくお願い致します。

「結合されたセルをプルダウンのリストにする」の質問画像

このQ&Aに関連する最新のQ&A

A 回答 (2件)

画像が小さすぎて どこをどう指定しているのか分かりません。



リスト範囲の選択を マウスで指定するのではなく「A1:A10」のように単一の行もしくは
列で直接入力して指定すれば問題ないはずです。セルの結合は見た目だけのものですから
先頭の行もしくは列が指定範囲になります。これはバージョン関係ないです。

ただ……リストに指定する範囲に何故 セルの結合なんてものが必要なのかと思います。
    • good
    • 1

>つまり、結合されたセルをプルダウンのリストにすることは出来ないのでしょうか?


Excel 2010までの仕様なのでExcel 2013へバージョンアップしてください。
貼付画像はExcel 2013での検証結果です。
「結合されたセルをプルダウンのリストにする」の回答画像1
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q(MS-Excel)「入力規則」で「リスト」に空白セルを含めない方法

(MS-Excel)「入力規則」で「リスト」に空白セルを含めない方法
たとえば、A1,B1,D1,G1は何らかの文字列が入力されていて、C1,E1,F1が空白セルだとします。
「入力規則」の「リスト」で、「元の値」にA1:G1を指定した場合は、空白もリストされてしまいます。
空白を表示させたくないのですが、作業セルに空白以外をリストさせて元の値とする、という方法は使いたくないです。
調べたところ、名前の定義方法で実現できるみたいですが、良く解りませんでした。

Aベストアンサー

途中のセルに空白がある場合は、空白セルを除くのは難しいかと。

>調べたところ、名前の定義方法で実現できるみたいですが
これは末尾のセルのことでしょう。

あとはvbaくらいしか思いつきませんが、、、(あまり便利にはなりませんが)
A3に設定しています。

Sub test()
Dim r As Range
Dim v
For Each r In Range("a1:f1")
If r.Value <> "" Then v = v & "," & r.Value
Next r
With Range("A3").Validation
.Delete
.Add Type:=xlValidateList, Formula1:=v
End With
End Sub

Qエクセル、ドロップダウンリストで空白セルを非表示

エクセル2013です。

Sheet1にドロップダウンリストを作成し、Sheet2のC列を参照したいです。
Sheet2のC列は日々入力され行数が増えていくのでリストの範囲を多めにしたいです。

入力規則
リスト-元の値
=Sheet2!$C$3:$C$20000

にしましたが
Sheet2のC列はまだ1,000行くらいしか入力されていない為
ドロップダウンリストでリストを表示すると
リスト内にて空白の部分の方が多く、検索が大変です。

NETで調べて

入力規則
リスト-元の値
=OFFSET(Sheet2!$C$3,0,0,SUMPRODUCT((Sheet2!$C$3:$C$20000<>"")*1))

としたのですが
ドロップダウンリストには
Sheet2のC列のセルC863までしか表示がされません。
Sheet2のC列はC1003まで値が有ります。

この関数のどこがわるいのでしょうか?
よろしくお願いします。

Aベストアンサー

参考までに

データのある最終行を検索する数式で設定したいなら、以下のような名前定義を使用します。
(元データがA1セル以下にある場合)

=$A$1:INDEX($A$1:$A$20000,MAX(($A$1:$A$20000<>"")*ROW($A$1:$A$20000)))

Qプルダウンで選択すると隣のセルに自動で入力される方法

プルダウンで選択すると隣のセルに自動で入力される方法
エクセル2003でシート1に「会社名」と「住所」を一覧を作成。シート2でプルダウンで「会社名」を選択すると隣のセルに自動で「住所」が出るようにしたいのですが、何か良い方法(関数)はありますか。教えてください。宜しくお願いいたします。

Aベストアンサー

プルダウンで確定した値を使ってVLOOKUPで検索したら。

例えば、Sheet1のA1~B10に会社名と住所の一覧があって、
Sheet2のA1でプルダウンで会社名を選択した場合、
B2を
=VLOOKUP(A1,Sheet1!A1:B10,2,FALSE)
とすれば、会社名に対応した住所が表示されます。

QExcel 入力規則_リスト 連続しないデータの空白行削除

お世話になります。
Excel2003を使用しています。
あるブックのSheet1に"リストデータ"と名前のついている範囲があります。
Sheet2の任意のセルで、リストデータを基に入力規則から
リスト選択をさせています。
このリストデータにはユーザが任意でデータを入力するのですが
必ずしも連続するデータにはならず
データの途中に空白セルが生じたり
データの最下行が人によって異なってしまいます。
そこで、不要な空白を削除したいのですが
VBAを使わない方法で何かいいアイディアはありますでしょうか。
皆様のお知恵を拝借いたしたく、よろしくお願いいたします。

Aベストアンサー

No.2です。補足拝見しました。

> Sheet2の空いている列(たとえばB列)を作業列として使います。
失礼しました。この記述がSheet1の誤りでした。名前を定義する数式の方は質問文に書いたとおりです。

> 名前を定義し、入力規則のリストを設定する際
> "数式はエラーと判断されます。続けますか?"
> のメッセージが出てしまいます、どうしたらよいでしょうか。

あれ、おかしいですね。エラーになってしまいましたか。
そのままコピーして貼り付ければ、私の環境ではエラーにはならないのですが…。

いろいろパターンを変えて試してみたのですが、こちらではそのようなエラーが出ないので、ちょっと原因がわかりません。もう一度コピーした数式を見直していただけますでしょうか?数式の入力中に矢印キーなどを使うと、カーソルが移動せずに移動先のセル番地が入力されてしまい、数式が狂ってしまいますが、そのようなことはないでしょうか。

どうしてもエラーが出るようでしたら、名前「リストデータ」の定義は
=Sheet1!$B:$B
だけでも空白を削除したリストを利用できます。ただし、リストの一番下の項目の下に空白行がたくさんついてきてしまいますが…。

No.2です。補足拝見しました。

> Sheet2の空いている列(たとえばB列)を作業列として使います。
失礼しました。この記述がSheet1の誤りでした。名前を定義する数式の方は質問文に書いたとおりです。

> 名前を定義し、入力規則のリストを設定する際
> "数式はエラーと判断されます。続けますか?"
> のメッセージが出てしまいます、どうしたらよいでしょうか。

あれ、おかしいですね。エラーになってしまいましたか。
そのままコピーして貼り付ければ、私の環境ではエラーにはならないのですが…。
...続きを読む

QExcelの入力規則で2列表示したい

入力規則を使って、社員コードを入力する際に
10001 山田太郎
10002 鈴木花子
10003 佐藤大介
のように、ドロップダウンリストに「社員コード」「社員名」と2列表示させたいのです。
そして、例えば山田太郎を選択すると、セルには「10001」だけが入力されるようにしたいのですが・・・
(Accessのルックアップフィールドみたいな感じ)

[入力規則]-[リスト]で、社員コード表を選択しても、単一の列または行でなければいけませんとエラーが出ます。
かといって[入力規則]-[リスト]で範囲指定をカンマ区切りで
10001 山田太郎,10002 鈴木花子,・・・と入力しても、エラーは出ませんがドロップダウンリストから選択したときに社員コード表と社員名が一緒にセルに入力されてしまいます。

なにか良い方法はありませんでしょうか?
よろしくお願いいたします。

Aベストアンサー

番号と社員名の間にスペースが入っているなら
メニューバーから「データ」→「区切り位置」で
1「カンマやタブなど---」にチェックを入れて「次へ」
2「区切り文字」で「スペース」にチェックを入れて「次へ」
3「完了」
で番号と社員名が違う列へ分けることが出来ます。
番号のデータがA2からA4、社員名がB2からB4にあるとし
C1にリストを設定して番号を入れ、D1に社員名が反映するようにするときにはD1に
=INDEX(A2:A4,MATCH(C1,B2:B4))
と入れてやるとうまくいくと思います。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QEXCELの機能の事で…初歩的でスミマセン

きっと探せば以前にも質問があると思うのでうが…
何を探せばいいのか分からず…
分かりやすく教えて頂けると助かります<m(__)m>

EXCELで日々入力する日報のようなものを作っています。
(職場はEXCEL2000です)
例えば…
飲食業なのですが、一つのセルに30品あるお料理の中から例えばご注文が『オレンジジュース』と入力するとします。
その都度、そのセルに『オレンジジュース』と入力するのではなく、入力セルの端のほうに▼(下矢印)のようなアイコンがあって、そこをクリックすると前もって登録した30品目がずらっと並び、そこから『オレンジジュース』をクリックするとそのセルに入力される…
と言うような事は出来ないでしょうか??

又、もし可能であればその『オレンジジュース』を選択したことにより、単価を入れるセルに『300』と単価が自動的に入力されるなど…。

そんな都合のいい事はできませんでしょうか?
説明が下手で本当にごめんなさい。
素人が3人で、あの手この手で半日頑張りましたが…ダメでした。
お力をお貸しください。

きっと探せば以前にも質問があると思うのでうが…
何を探せばいいのか分からず…
分かりやすく教えて頂けると助かります<m(__)m>

EXCELで日々入力する日報のようなものを作っています。
(職場はEXCEL2000です)
例えば…
飲食業なのですが、一つのセルに30品あるお料理の中から例えばご注文が『オレンジジュース』と入力するとします。
その都度、そのセルに『オレンジジュース』と入力するのではなく、入力セルの端のほうに▼(下矢印)のようなアイコンがあって、そこをクリックすると前もって登録した30...続きを読む

Aベストアンサー

データの入力規則と、VLOOKUP関数でできます。

A列に品目を、B列に値段を入力するとします。
(1)まず前準備として、C列に品目すべてを、D列にそれぞれの値段を書き込んでおきます。
(2)A列を選択し、メニューの「データ→入力規則」
(3)設定タブの「入力値の種類」を「リスト」に、「元の値」をC列に設定します。
これだけで、A列にカーソルを移動すると右に▼マークが表示され、それをクリックすると品目リストが表示されます。

関数はB1に
=VLOOKUP(A5,C:D,2,FALSE)
と入力し、必要なだけ下にコピーします。A列に入力された品目に応じた値段が表示されます。

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング