[[20201012111613]] 『「データの入力規則」のリストが自動コピーされな』(はてな) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『「データの入力規則」のリストが自動コピーされない方法』(はてな)

データの入力規則」の「リスト」で作成したリスト(のあるセル)を移動すると、移動先の前後にある既存のリスト内容がそっくりコピーされている現象についてです。

たとえば以下の手順で別シート同士でリスト候補とリストを作ります。

(1)リスト候補とした「シート2」のA2セルに「りんご」、A3に「ぶどう」、A4に「なし」を入力します。

(2)A2からA4を選択し、右クリック「名前の定義」で「くだもの」という名前を付けます。

(3)ワークシートとした「シート1」のA2セルに「データの入力規則」の「リスト」の「元の値」に
「=くだもの」と入れると、「りんご、ぶどう、なし」というリストが作成されます。

つまり絶対参照としてリスト候補を作ったわけですが、手順としてはここまででよいと思います。

問題は、ワークシート上でいくつか作成した別のリストの入ったセル同士の場所を入れ替えると、他のリスト候補になっているのです。

たとえば上記のとおりA1「りんご、ぶどう、なし」というリストを作りました。
A2には「かき、くり、いちじく」というリストを作りました。

A2をA1の上に移動しても当然、A2は「かき、くり、いちじく」のはずですが、なぜか「りんご、ぶどう、なし」というA2セルと同じになっています。

これは前後のセル内容を自動コピーをする「フラッシュフィル」機能が働いていると思ったので、設定でオフにしました。
しかし…やはり同じ現象は繰り返されます。

つまり、自動でリスト内容がコピーされているのが問題ですが、リストが消えてしまう現象もあります。

ほんとに困ってます。
原因と対策を教えてください!

(Excel2019利用ですが、それ以前にはこのようなことにはなりませんでした)

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 >なぜか「りんご、ぶどう、なし」というA2セルと同じになっています。
 A1セルの間違いでは?

(PP) 2020/10/12(月) 14:26


 >A2をA1の上に移動しても当然、A2は「かき、くり、いちじく」のはずですが、なぜか「りんご、ぶどう、なし」というA2セルと同じになっています。

「移動」したのだから、
A1のリストが「かき、くり、いちじく」
A2のリストが「りんご、ぶどう、なし」
となるのでは?

あ、単に「移動」だと、A2は何にもなくなって
A2セルのものがA1に移動するかな?

どういう操作をもって「移動」と言われているのでしょうか?
入れ替えるなら僕ならセルを選択後枠を右クリックでドラッグ、
ドロップ後、表示されたメニューから、「下にシフトして移動」を選びます。

フィルハンドルをドラッグしているなら、当然フィルコピーされるので、
同じものがコピーされると思いますが。。。。

バージョンが変わってもこの挙動は同じかと。

ちなみに、2019で確認しました。

セルの入力規則等は、そのままで、A2の値のみをA1に移したいということでしょうか?

それなら、
コピーして値のみ貼り付け
でどうでしょうか。
(まっつわん) 2020/10/12(月) 14:47


 回答者への参考として。

https://okwave.jp/qa/q9810369.html
(通りすがり) 2020/10/12(月) 15:32


 >バージョンが変わってもこの挙動は同じかと。 
 2013 で確認、挙動は同じでした。
(のり) 2020/10/12(月) 15:40

 >それ以前にはこのようなことにはなりませんでした
 以前のことは覚えていませんが
 当方Excel2019利用ですが、
 A1「りんご、ぶどう、なし」
 A2「かき、くり、いちじく」であっているのであれば
 半平太さんの1の方法でShiftキーを押しながら、マウスでドラッグすれば 
 再現しません。
 結果としてA1が「かき、くり、いちじく」になりA2が「りんご、ぶどう、な 
 し」になります。

 で、もしかしたらと
 「りんご、ぶどう、なし」の入力規則の設定をA列全体に設定して
 A1が空欄で
 A2「りんご、ぶどう、なし」
 B2「かき、くり、いちじく」にして、B2をA1に移動するとおっしゃるように 
 A1の入力規則のリストが「りんご、ぶどう、なし」になりますね。
 それと
 >リストが消えてしまう現象もあります。
 >つまり絶対参照としてリスト候補を作ったわけですが、
 リスト候補とした「シート2」の方でリストにしたセルを移動したり行や列を 
 挿入すると起きる現象のようです。
 リストが例示のように少なければ、もとの値に触接入力してしまえばいいの 
 ですが…
 いろいろな人が使うファイルだと意図せぬことも起きますよね。
 ご参考まで
  h ttps://www.forguncy.com/blog/20170130_offset

(檸檬) 2020/10/12(月) 17:11


スレ主です。

A1のリストが「かき、くり、いちじく」
A2のリストが「りんご、ぶどう、なし」

であってます。
言い方を変えます。

A2「りんご、ぶどう、なし」をランダムに移動する、とします。

移動した先の直上にあるセルに「かき、くり、いちじく」というリストがあるとします。

でも、移動したその先で「りんご、ぶどう、なし」に変わってるのです。

>「りんご、ぶどう、なし」の入力規則の設定をA列全体に設定して

全体に設定してはいませんが、入力規則のリストを設定しているセルはたくさんあります。
これが原因なのでしょうか?

(はてな) 2020/10/12(月) 17:23


また、ご紹介いただいたリンク先では「OFFSET関数は完全な絶対参照を実現することができます。」
とありましたが、「入力規則」で作るリスト化はやめて、この関数を使ったほうがよいのでしょうか?

(はてな) 2020/10/12(月) 17:45


 >A1のリストが「かき、くり、いちじく」 
 A2のリストが「りんご、ぶどう、なし」 
 ここでのA1、A2というのは入力規則を適応した(参照している側の)セルのことでしょうか?

 >A2「りんご、ぶどう、なし」をランダムに移動する、とします。
 この時、移動する前、既に直上にあるセルに「かき、くり、いちじく」があると思うのですが
 それとは別の場所で真上に「かき、くり、いちじく」があるセルに移動するのでしょうか?

 Office2016 , win10の当方環境では思いつく動作をしても再現しませんでした。
 文面でくみ取りづらいところが多いので、表など使って分かりやすく記述していただけると助かります。
(りぃ) 2020/10/12(月) 18:08

 >全体に設定してはいませんが、入力規則のリストを設定しているセルはたくさんあります。							
 >これが原因なのでしょうか?							
 ああ、数行ほどで試してもそうなりますね(変わりますね)。							

 ちなみに							

 入力規則の直下のセル(移動先)になにも設定されていなければ変わりませんでした。							

 設定されているセルに移動すると変わるようです。							

 そしてデータのあるセル「かき、くり、いちじく」に移動した時は							
 既にデータがありますが、置き換えますか?と親切に聞いてくれます(笑							

 仕様ですかね〜							

 >もとの値に触接入力
 元の値に直接です。

(檸檬) 2020/10/12(月) 18:34


りぃさん

>>A1、A2というのは入力規則を適応した(参照している側の)セルのことでしょうか?

はいそうです。

>>この時、移動する前、既に直上にあるセルに「かき、くり、いちじく」があると思うのですが それとは別の場所で真上に「かき、くり、いちじく」があるセルに移動するのでしょうか?

どこに、ではなく、ランダムな移動、といったほうが適切でした。

とにかく移動先に、その直上、または直下に既存の「入力規則で作成したリスト」がある場合、その直上、または直下のリスト内容と一緒(コピーされたのかも)になっているということです。

(はてな) 2020/10/12(月) 19:02


檸檬さん

>入力規則の直下のセル(移動先)になにも設定されていなければ変わりませんでした。

そうなんです!直下のセルではなく、直上のセルの内容に入れ替わっているほうが多いです。

>置き換えますか?と親切に聞いてくれます(笑

それって単なる上書き(コピー)ですよね?

コピーでは当然ですけれど、(セルの入った)行ごと移動をする必要がありしかも「入力規則で作成したリスト」の入ったセルがたくさんあるので、もう四苦八苦してます。

やはりOFFSET関数使うべきですか?

(はてな) 2020/10/12(月) 19:08


 >とにかく移動先に、その直上、または直下に既存の「入力規則で作成したリスト」がある場合、
 >その直上、または直下のリスト内容と一緒(コピーされたのかも)になっているということです。
 それは再現されません。

 >入力規則の直下のセル(移動先)になにも設定されていなければ変わりませんでした。
 というのは、入力規則が設定されていないセルに移動するのなら問題はないということです。
 設定が上下に入っていても、「挟まれたセルに入力規則が設定されていなければ」
 移動しても中身は変わりませんでした。

 >行ごと移動をする必要があり
 >直下のセルではなく、直上のセルの内容に入れ替わっているほうが多いです。
 単一セルでなく行ごとだとそういうこともあるかもしれませんね。

 そもそも入力規則は何のために設定してあるかということです。
 一般的には、レイアウトが先だと思いますが。。。

 入力規則が設定してあるのにデータが入っていないからそういうことになるので
 (選択していないので中身だけ入れ替わる)

 移動で行ごと置き換えたいのなら移動先の入力規則を先にクリアすればいいのでは?
 または何度も言いますが入力規則の元の値に直接入力すればそういうことにはなりません。

 >やはりOFFSET関数使うべきですか?
 それはまた別問題では?

(檸檬) 2020/10/12(月) 21:34


 >そうなんです!直下のセルではなく、直上のセルの内容に入れ替わっているほうが多いです。 
 移動、貼り付けするとデータは上書きされ前のデータは消去されるこれが Excel の仕様です。
(PP) 2020/10/13(火) 10:05

 前提を確認したいのですが…

 シート1
 A|B|C
1 a|d|g
2 b|e|h
3 c|f|i

 A1:A3 → "a"と命名
 B1:B3 → "d"と命名
 C1:C3 → "g"と命名

 シート2
 A | B|
1 =a| |
2  |=d|
3 =g| |
 ↓↓↓
 A | B|
1 =a| |
2 =d| |
3 =g| |

 (=a などは入力規則だと思ってください)
こうしたときに、=dの箇所が=aまたは=gになるということで合っていますか?
(りぃ) 2020/10/13(火) 10:51

>こうしたときに、=dの箇所が=aまたは=gになるということで合っていますか?

おおむね合っていますが、列は一列だけの入力規則となります。

シート1➡リスト候補一覧
 A|B|C
1 a|d|g
2 b|e|h
3 c|f|i

 A1:A3 → "a"と「名前の定義」を命名
 B1:B3 → "d"と「名前の定義」を命名
 C1:C3 → "g"と「名前の定義」を命名

 シート2➡ワークシート上で「入力の規則」のデータを作るとき、名前の定義で呼び出す
 A | 
1 =a| 
2 =d|
3 =g|

 ↓↓↓

 A |
1 =a|←A1をA2とA3のあいだに移動
2 =d|
3 =g|

 ↓↓↓ 

 A
1 =d|
2 =g|
3 =g|

こういうことです。

A1(リストは A1:A3)の入ったセル(行単位)を「移動」(カット&ペースト)する。
A3はg(リストはC1:C3)ですが、移動したA1がA3のリスト内容に変わってしまっているということです。
でもコピペすると、変化はありません。

(はてな) 2020/10/13(火) 13:00


コピペについて訂正です。
コピペしても同じです((´;ω;`)
(はてな) 2020/10/13(火) 14:57

 ようやく再現しました…
1) =a の箇所を「セル単体で」切り取り
2) =d と =g の間に切り取ったセルを挿入する
と再現できます。
この時、データの入力規則の中身を見ると参照が置き換わっていることも確認しました。

 ちなみに、
 A |
1 =a|
2 =d|
3 =g|
から
 A |
1 =d|
2 =a|
3 =g|
だと再現しますが
 A |
1 =a|
2 =d|
3 =g|
から
 A |
1 =a|
2 =g|
3 =d|
だと再現しません。(分かり辛くて申し訳ございません)

 正直私にはバグのように見えるのですが…見識ある方いらしましたら後はお願いします。
(りぃ) 2020/10/13(火) 18:26

(横入り失礼)
Windows10,Excel2019を使って試してみましたが、
再現しませんでした。
「フラッシュフィル」機能をオン・オフいずれでも結果は同じでした。
1
2 =d
3 =a
4 =g
となりますけど。

ところで、
A2とA3の間に入れる操作は
3行目を選択状態にして、
行挿入し、
A1セルをCtrl+Xして
A3に、Ctrl+V で上書きする、
でよいですか?

(γ) 2020/10/13(火) 18:39


 > =a ←A1をA2とA3のあいだに移動
 どうやってその間に移動するのですか。
 移動した図がないですね。
(PP) 2020/10/13(火) 20:08

図はどのようにしてそれぞれ入れ替えたのですか。
 >この時、データの入力規則の中身を見ると参照が置き換わっていることも確認しました。
 入力規則はどのように設定したのですか。どのように置き換わったのですか。

(KK) 2020/10/13(火) 20:51


 ごめんなさい、私はスレ主ではないので私の再現で合っているのか分からないです。
(あまりに分かり辛かったので整理しているだけです…)
A1セルをCtrl+Xして、A3を選択し、「コピーしたセルの挿入(E)」で挿入したとき再現しました。

 入力規則の定義は(りぃ) 2020/10/13(火) 10:51で書いたとおりです。
それが伝わっていないのなら申し訳ないのですが…
(りぃ) 2020/10/14(水) 09:49

Yさん

>A2とA3の間に入れる操作は3行目を選択状態にして、行挿入し

選択状態ということはコピーですよね?
すでに説明しているとおり移動なのですが。

りぃさん

私のだけなんでなの??という感じですが、バグだと思います。
今までこのようなことなかったのに…。

(はてな) 2020/10/14(水) 15:56


たぶん、特別の使いかたをするとそうした事象になるということでしょうね。
バグと呼んでいいと思います。

本論からはずれるが、ご指導いただいたので、こちらの考え方を書きます。
>選択状態ということはコピーですよね?
おっしゃる意味がわかりません。
A1 をCtrl+XでカットしてA2とA3の間に貼り付けたんだから、コピーとは言わないですよ。
A1に元のものが残っているならコピーだけど、私の操作はコピーとは呼ばないです。

(γ) 2020/10/14(水) 16:04


Yさん

了解しました。

他の複数サイトでも質問してますが、回答はありません。
これはもう、どうしようもないですかねえ。
それともプロに有料で相談したほうがいいでしょうか?
(はてな) 2020/10/14(水) 17:28


私見ですが、プロに相談してもしょうがないと思いますよ。お金で解決するものでもないです。
この振る舞いを変えることは、ユーザーのコントロールを超えたものです。
製品の一部ですから、これを修正できるのは、マイクロソフトの開発者しかいません。

一般ユーザーが、そういう振る舞いをすることを知ることは意義がありますが、
ユーザーはそれを所与の事実として、
別の方法によって当初の目的を達成する、そういう工夫をするしかありません。

私が採った方法だと、そうした事象は起きないので、その意味でコメントしました。

(γ) 2020/10/14(水) 18:04


サービスセンターなどに知らせても、
相手にしてもらえない可能性が高い、とは良く聞く話です。
バグとは認めず、それは仕様です、と言われて終わった、などという話はよく聞きます。
そうした類の話はたくさんあるでしょう。
 
しかし、情報提供には一定の意味もあるでしょうから、
マイクロソフトに情報提供してはどうですか?
 
マイクロソフトが運営する質問掲示板で情報提供すると、
マイクロソフトに声が届くかも知れません。
https://social.msdn.microsoft.com/Forums/ja-JP/home?forum=vbajp

(γ) 2020/10/14(水) 18:11


こちらも再現出来ました。

1行目はその上の行がないので、特殊と言えば特殊ですよね?
1行目を使わなければ大丈夫っぽくないですか?

ソフトの使い方を聞くなら、メーカーに聞くのが筋でしょうが、
別件で問い合わせしたら、

「個別の技術的質問にはお答えてきません。」

という回答でした。
(まっつわん) 2020/10/14(水) 19:05


 答えが出尽くしている感がありますが、										
 私のは入力規則の列の中に他の入力規則を入れ込むイメージで検証していたのと										
 >入力規則が設定してあるのにデータが入っていないからそういうことになるので										
 >(選択していないので中身だけ入れ替わる)										
 というところが少し間違っていました。見えないから間違いの元ということです。										

 あと、単一セルでも行単位でも										
「Shiftキーを押しながら、マウスでドラッグ」でも										
「コピーまたは切り取りして挿入」でも再現できたのですが、毎回ではなく変わる時と変わらない時があり										
 表面上ではできているので繰り返せば繰り返すほどおかしくなります。										

 なにか方法はないのかと実験してみて結局ダメだったのですが										
 A列に 果物 肉 酒 でリスト(入力規則)3種類										
 	A	B	C	D
 1	りんご	100	200	11
 2	りんご	100	200	12
 3	りんご	100	200	13
 4	りんご	100	200	14
 5	りんご	100	200	15
 6	牛肉	1000	2000	1
 7	牛肉	1000	2000	2
 8	牛肉	1000	2000	3
 9	牛肉	1000	2000	4
 10	牛肉	1000	2000	5
 11	日本酒	500	1500	6
 12	日本酒	500	1500	7
 13	日本酒	500	1500	8
 14	日本酒	500	1500	9
 15	日本酒	500	1500	10

 のようにしてD列を基準に並べ替えをしてみたところ						
 A列は 牛肉 日本酒 りんご の順で並べ替えられたのですが						
 A列の中身はりんご 牛肉 日本酒 のままでした。						

(檸檬) 2020/10/15(木) 00:13


 あと訂正するのを忘れましたが
 「入力規則の元の値に直接入力すればそういうことにはなりません。」
 も間違ってました。申し訳ありません。2〜3個のセルでしか見てませんでした。

 (はてな)さんのおっしゃっていたことがほぼ再現できました。

 (γ)さんのおっしゃるように、別の方法によって当初の目的を達成する、そういう工夫をするしかない 
 と思います。

 以上です。
(檸檬 ) 2020/10/15(木) 00:43

「Microsoftのサポートひどい」というサジェストがでてきてるし、待たされるだろうし、たぶん面倒くさいだろうから、やめますね。

サポート掲示板のほうにも投稿しましたが、答えがありません。

だから特殊なエラーなのかも。

>繰り返せば繰り返すほどおかしくなります。

そうなんですね。繰り返し行っていたところ、突然そうなりました。
以前はExcel2007でしたが、同じことを行ってもまったくこのようなことにはなりませんでした。

他の方法によってやることにします。
皆さま、ご回答ありがとうございました。
(はてな) 2020/10/15(木) 02:46


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.