Excel2007で、2003以前でなるのかは試していないのですが…
値を切り取って違うところに貼り付けすると、隣の列の計算式の参照先が変化してしまい困っています。
分かり辛いですが…
sheet1とsheet2があります。
sheet1にはデータが入っており、sheet2でsheet1のデータを集計しています。
sheet1には
C列に名前、D列にデータ、E列にデータが入ってます。
sheet2には
B列に名前が列挙してあります。sheet1内の検索用です。
そしてC列に
=SUMIF(sheet1!C$1:C$150, sheet2!$B1, sheet1!E$1:E$150)-SUMIF(sheet1!C$1:C$150, sheet2!$B1, sheet1!D$1:D$150)
という計算式が入っています。
sheet1のC列の中で、名前(sheet2!$B1)が一致するE列の合計値からD列の合計値を引いた結果を集計しています。
そして、人数分この式がコピーされています。
他には見た目的な装飾以外には特に何も書かれていません。
ここで、sheet2の検索用の名前が減ったり、順番が移動したので、切り取って違う位置(同じ列です)に張り付けました。
例えば、5人分の名前を切り取って一つ上の行に張り付けします。
思いとしては、となりの計算式は当然変化せず再計算されて、計算結果も上の行に一つ分ずれる予定だったのですが、結果としては何故か数式が変化して、(sheet2!$B)の部分が移動した名前列を追いかけるように1個分変化してしまいます。(移動した5個分だけが数式変化します)
当然名前と計算結果の行がずれてしまい、具合が悪いです。
$で絶対参照にすると、数式をコピーした際に行移動した分が変化しないので、結局数式を1個1個変更することになるので面倒です。
かと言って、R1C1形式で相対参照にすれば解決する可能性もありますが(試してません)、多分R1C1形式に慣れて無い人が使えば混乱してしまう気がするので、なるべく避けたいです。
コピーして貼り付けする分には数式は変化しないので、とりあえずはそれで対処してます。
(コピーして貼り付けした後に不要な名前を削除)
どなたか、解決方法か、こういう仕様である利点、もしくは自分の間違いを教えていただけないでしょうか。
No.1ベストアンサー
- 回答日時:
「切り取り&貼り付け」は、エクセルは「セルの移動」として処理します。
従って「切り取り&貼り付け」でセルを移動させると、そこを参照していた式がすべて書き替えられます。
この書き替えは「例外はない」ので、$の有無による絶対参照/相対参照でも、R1C1形式による参照でも、必ず書き替えが起こります。
もし「セルの入れ替え」を行うなら「OFFSET関数を用いて、起点となるセルに、絶対に移動しないセルを用いる」しかありません。
例えば「A1セルは絶対に移動したりしない」と判っているなら「$B1」と書く代わりに「OFFSET($A$1,0,1,1,1)」と書きます。
また、セルの中身を参照する場合に「何があっても同じ場所を参照する」と言う場合は「INDIRECT("$B$1")」と書けば、この式は、セルが動こうが消えようがお構いなしに「常にB1セルの値を返す」ようになります。
「参照するセルが移動してしまう可能性があるのにも関わらず、参照式を追従させたくない」と言う場合は、上記のように「OFFSET関数」または「INDIRECT関数」を使用しましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) 【Excel質問】別シートにある複数の同型の表から、同じ行項目にある数字を集計する 4 2023/02/16 00:14
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- その他(Microsoft Office) オフィス365のエクセル 3 2023/06/29 13:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Outlook で宛先が複数の場合の人数
-
【スプレッドシート】指定の日...
-
Microsoft Formsの「個人情報や...
-
Microsoft Edgeの「ニュースと...
-
VLOOKUP関数について
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
-
outlookのメールが固まってしま...
-
teams設定教えて下さい。 ①ビデ...
-
Microsoft365で写真をアルバム...
-
Microsoft Officeに似たキング...
-
会社におけるOfficeライセンス...
-
【スプレッドシート】白色のセ...
-
Excel VBA 日程表からスケジュ...
-
VBAファイルの保存先について
-
エクセル、ワード、ネット検索...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
マイクロソフト 一時使用コード...
-
英数字のみ全角から半角に変換
-
Office2021を別のPCにインスト...
-
Microsoft Formsの「個人情報や...
-
officeビジネス型のワードやエ...
-
会社PCのメールが更新されない
-
【スプレッドシート】指定の日...
-
Microsoft Officeを2台目のPCに...
-
何このステータスバー
-
2つのシートの一致する行のセ...
-
会社のTeamsのことで相談です。...
-
エクセルにリンクされるのをし...
-
Windows 11で、IME言語バー(IM...
-
office2010とoffice365の共存で...
-
Microsoftのパソコンです。 エ...
-
エクセルでXLOOKUP関数...
-
Excel関数について質問ですm(__)m
-
VBA
-
自分の専門分野の仕事。初見で...
おすすめ情報