複数コピペする場合に活用するCtrl押しながら範囲を選択する方法。
複数選択してコピーを押すと

この操作は複数の選択範囲に対しては機能しません

とダイアログが出現して、できません。

今まで出来ていましたし、その後は、出来たりできなかったりの繰り返しです。
同じような操作をしているのに、どうしてできない時があるのかが分かりません。

原因がわからないので、解決しようがありません。。。

分かる方教えてください。
お願い致します。

A 回答 (1件)

同じ行列を選択していますか?


http://www.bmoo.net/archives/2015/05/315338.html

離れていても、同列や同行ならCtrlキーでの選択は可能です。
複数列や複数行の場合には、離れた範囲が同列や同行となるように
選択する必要があります。

例1:A列の場合
A1,A5,A10のセル選択は可能。

例2:A列とB列の場合
A1:B1,A5:B5,A10:B10のような連続した範囲で離れた行選択は可能。

例3:A列とC列の場合
A1,C1,A5,C5,A10,C10のようにそれぞれが矩形となる選択のみ可能。
(一つでも欠ける選択はできないということ)

ちなみに上記条件でコピーできたとしても、貼り付け先で離れた範囲を
指定した貼り付けは同じエラーが出て貼り付けすることはできません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

行ごとのコピーで、何行か分を、ctrlで、指定して、セルも暗転している状態からの
コピーにすると、出来なかったのです。
保存してあるものだったので、一度閉じて、同じものを、開くと、今度はできたりって感じなんで、、自分が気づいてないだけで、どこかクリックしちゃっているのかもしれない可能性が、高いってことですよね。
ありがとうございました。

お礼日時:2017/06/14 22:39

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

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

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

QVBAか関数でできるのでしょうか?

いつもこちらで皆さんに助けていただいてます。昨日質問しましたが画像が張り付けられていなかったので再度質問です。

”仕入表”タブに入力されたデータが横並びのデータです。
例えば、商品コード/品名/価格/色/入荷数 の並び順で、入力されています。一つの品番に対して色数は1から10個あり、色/入荷数/色/入荷数という風に構成されてます。

そこでこちらでお世話になり、仕入表に入力したデータを縦並びに色別で”在庫表”タブに表を作れるようなVBAを教えていただきました。

画像の仕入表は上の表で、下の表が在庫表に転記されたときの例です。
因みにその時のVBAはこちらです。


Sub Sample4() '//この行から
Dim i As Long, j As Long, cnt As Long, lastRow As Long, wS As Worksheet
Application.Calculation = xlCalculationManual
Set wS = Worksheets("仕入表")
With Worksheets("在庫表")
'//E列で「在庫表」Sheetの最終行取得★
lastRow = .Cells(Rows.Count, "E").End(xlUp).Row
'//「在庫表」SheetにデータがあればD列2行目~I列最終行データを一旦消去
If lastRow > 1 Then
.Range(.Cells(2, "D"), .Cells(lastRow, "I")).ClearContents
End If
cnt = 1
For i = 3 To wS.Cells(Rows.Count, "A").End(xlUp).Row '//「仕入表」Sheetの3行目~A列最終行まで
For j = 5 To wS.Cells(i, Columns.Count).End(xlToLeft).Column Step 2 '//E列~i行最終列まで2行毎★
If wS.Cells(i, j) <> 0 Then '//画像で「0」が表示されているので「0」以外を追加★
cnt = cnt + 1
'//最初のデータ行のみ「仕入表」Sheetの日付をD列に表示★
If j = 5 Then
.Cells(cnt, "D") = wS.Cells(i, "A")
End If
.Cells(cnt, "E") = wS.Cells(i, "B") '//B列に「コード」を表示
.Cells(cnt, "F") = wS.Cells(i, "C") '//F列に「商品名」を表示
.Cells(cnt, "G") = wS.Cells(i, "D") '//G列に「下代」を表示
.Cells(cnt, "H") = wS.Cells(i, j) '//H列に「色」を表示
.Cells(cnt, "I") = wS.Cells(i, j + 1) '//I列に「数」を表示
End If
Next j
Next i
'//最後にD列の表示形式(日付)を「在庫表」SheetのA3セルの書式に設定★
.Range("D1", Cells(Rows.Count, 4).End(xlUp)).NumberFormatLocal = wS.Range("A3").NumberFormatLocal
End With
Application.Calculation = xlCalculationAutomatic
End Sub '//この行まで


そこで、また新たにもしできるなら教えていただきたいことが出てきました。
仕入表タブのC列に出荷した商品が出たら「出荷済」と入力していますが(画像ではA列から埋まってますが実際はA~Cは空白にしてます)、”出荷済”にしたときに在庫表タブの同じ品番の商品すべて(日付~すべての色の個数まで)を黄色の色付けにすることはできますか?
もしできるとすごく楽になるのですが・・・
それではよろしくお願いします。

いつもこちらで皆さんに助けていただいてます。昨日質問しましたが画像が張り付けられていなかったので再度質問です。

”仕入表”タブに入力されたデータが横並びのデータです。
例えば、商品コード/品名/価格/色/入荷数 の並び順で、入力されています。一つの品番に対して色数は1から10個あり、色/入荷数/色/入荷数という風に構成されてます。

そこでこちらでお世話になり、仕入表に入力したデータを縦並びに色別で”在庫表”タブに表を作れるようなVBAを教えていただきました。

画像の仕入表は上の表で...続きを読む

Aベストアンサー

No6です。
以下の箇所を修正しました。前回のマクロをこれで入れ替えてください。
1)エラー13で型が一致しません。・・・この対策
色の箇所が0以外なら処理しているのを、空白以外なら処理するようにしました。
2)今更ですが黄色の色付けを日付の列だけにすることは可能でしょうか。
日付の列だけ黄色にしました。
-------------------------------------------------------
Sub Sample4() '//この行から
Dim i As Long, j As Long, cnt As Long, lastRow As Long, wS As Worksheet
Dim wns As Worksheet
Application.Calculation = xlCalculationManual
Set wS = Worksheets("仕入表")
Set wns = Worksheets("納品仕訳")
Worksheets("在庫表").Activate '追加
With Worksheets("在庫表")
'//E列で「在庫表」Sheetの最終行取得★
lastRow = .Cells(Rows.Count, "E").End(xlUp).Row
'//「在庫表」SheetにデータがあればD列2行目~I列最終行データを一旦消去
If lastRow > 1 Then
.Range(.Cells(2, "D"), .Cells(lastRow, "I")).ClearContents
.Range(.Cells(2, "D"), .Cells(lastRow, "I")).Interior.Pattern = xlNone
End If
cnt = 1
For i = 3 To wS.Cells(Rows.Count, "A").End(xlUp).Row '//「仕入表」Sheetの3行目~A列最終行まで
For j = 5 To wS.Cells(i, Columns.Count).End(xlToLeft).Column Step 2 '//E列~i行最終列まで2行毎★
If wS.Cells(i, j) <> "" Then '//画像で「0」が表示されているので「0」以外を追加★ '修正
cnt = cnt + 1
'//最初のデータ行のみ「仕入表」Sheetの日付をD列に表示★
If j = 5 Then
.Cells(cnt, "D") = wS.Cells(i, "A")
End If
.Cells(cnt, "E") = wS.Cells(i, "B") '//B列に「コード」を表示
.Cells(cnt, "F") = wS.Cells(i, "C") '//F列に「商品名」を表示
.Cells(cnt, "G") = wS.Cells(i, "D") '//G列に「下代」を表示
.Cells(cnt, "H") = wS.Cells(i, j) '//H列に「色」を表示
.Cells(cnt, "I") = wS.Cells(i, j + 1) '//I列に「数」を表示
If wns.Cells(i + 2, "C").Value = "出荷済" Then
.Range("D" & cnt).Interior.Color = 65535 '修正
End If
End If
Next j
Next i
'//最後にD列の表示形式(日付)を「在庫表」SheetのA3セルの書式に設定★
.Range("D1", Cells(Rows.Count, 4).End(xlUp)).NumberFormatLocal = wS.Range("A3").NumberFormatLocal
End With
Application.Calculation = xlCalculationAutomatic
End Sub '//この行まで
-------------------------------------

No6です。
以下の箇所を修正しました。前回のマクロをこれで入れ替えてください。
1)エラー13で型が一致しません。・・・この対策
色の箇所が0以外なら処理しているのを、空白以外なら処理するようにしました。
2)今更ですが黄色の色付けを日付の列だけにすることは可能でしょうか。
日付の列だけ黄色にしました。
-------------------------------------------------------
Sub Sample4() '//この行から
Dim i As Long, j As Long, cnt As Long, lastRow As Long, wS As Worksheet
Dim wns As Works...続きを読む

Qexcelで条件に合うよう、複数のセルの合計を求めたい

例えば、次のように並んでいるセルの数値があるとします。

1515
2748
540
5509
2195
680
7142
305
5042
530
667
325
9950
4800

その合計が30000以上で、かつ、最小の数字となるよう、複数のセルを選択したいと思いますが、これを実現できる関数はありますか?

Aベストアンサー

いわゆる「ナップザック問題」と呼ばれる種類の問題になると思います。

14個を選択する/しないなら、総当りしても16384個ですから、力技でも行けるかも。
画像を参考に、
1行目にデータの数値を横並び。
2行目に0~13の固定値を右から
3行目に2の0乗~2の13乗(8192)の固定値を右から
A列に0~16383の固定値
で、

B4:O16387の範囲に、
B4:=MOD(INT($A4/B$3),2)
をコピペして2進数の各桁の値を

P4:P16387の範囲に、
P4:=SUMPRODUCT($B$1:$O$1,B4:O4)
をコピペして、2進数の各桁のビットとデータの数値の積和

で、全16384通りの計算が行われるので、A4:末尾を選択して並べ替えすると、
合計が30002となる、
1515
2748
2195
680
7142
305
667
9950
4800
が確認できるとか。

--
もっと数値の数が増えると、この方法では厳しいので、

ナップザック問題をExcelで解く
http://www.geocities.co.jp/SiliconValley-Oakland/8139/

みたいなプログラムで解くような事になります。


条件が違うのでプログラムはそのまま使えませんが、似た質問。

エクセルで、「袋詰め問題」を解きたい - Excel(エクセル) 解決済 | 教えて!goo
https://oshiete.goo.ne.jp/qa/1255891.html

いわゆる「ナップザック問題」と呼ばれる種類の問題になると思います。

14個を選択する/しないなら、総当りしても16384個ですから、力技でも行けるかも。
画像を参考に、
1行目にデータの数値を横並び。
2行目に0~13の固定値を右から
3行目に2の0乗~2の13乗(8192)の固定値を右から
A列に0~16383の固定値
で、

B4:O16387の範囲に、
B4:=MOD(INT($A4/B$3),2)
をコピペして2進数の各桁の値を

P4:P16387の範囲に、
P4:=SUMPRODUCT($B$1:$O$1,B4:O4)
をコピペして、2進数の各桁のビットとデータの数値の積...続きを読む

Q月間集計 SUMIFS関数

お世話になっております。

図表のように、入金額データ表から月間ごとに集計したものです。
SUM関数では問題ありませんが、SUMIFS関数を使うと「#VALUE!」エラーが出ます。

=SUMIFS(C$6:C$505,$C$5:$BZ$5,"="&C$1)
「#VALUE!」

どなたか教えてください。m(__)m



※補足説明

・「年月」の項目の表示形式は、年頭の「2017/1/1」と入力してユーザー定義で
「yyyy"年"m"月"」と設定し
 2月以降は、「2017/2/1」と打ち込み、それをユーザー定義「m"月"」で設定
 シリアル値
・C列のデータ件数 500件 $C$6:$C$505

Aベストアンサー

参照する範囲が不適切です。

合計する範囲を6行から505行までとしているのに、その条件がC列からBZ列なのがいけない。
行と列を一致させなければエラーになるのは当然です。

この場合、
 =SUM(D6:D505)
でそのまま合計が求まると思うんですけどいかがでしょう。

Qエクセル数式の質問です。

C6セルに

"日"が来たら"25,000"

"月、火、水、木"、が来たら"27,000"

"金"が来たら"29,000"

"土"が来たら32,000と

E6セルに表示させたいのですが。

宜しくお願いします。

Aベストアンサー

何もなければ空白
”日”なら25,000
”金”なら29,000
”土”なら32,000
それ以外(月火水木)なら27,000

の順にIF関数を汲めばよいと思います
 =IF(C6="",""IF(C6="日",25000,IF(C6="金",29000,IF(C6="土",32000,27000))))

…が、
自分ならその曜日(?)の元データを使ってCHOOSE関数を使うかもしれません。
B6セルに日付が入力されていてC6セルに曜日なら、
 =CHOOSE(WEEKDAY(B6),25000,27000,27000,27000,27000,39000,32000)
とします。
これなら条件が微妙に変わっても(水について別途条件が発生…など)並んでいる数値を変えるだけで済みます。
※日付はシリアル値になっている必要があります

QEXCEL関数、判別?

12星座の順位付けをしたいです。
まず、基点となる星座が、日によって変わります。
1牡羊座
2牡牛座
3双子座
4蟹座
5獅子
6乙女座
7天秤座
8蠍座
9射手座
10山羊座
11水瓶座
12魚座
の順の日もあれば、

1牡牛座
2双子座
3蟹座
4獅子
5乙女座
6天秤座
7蠍座
8射手座
9山羊座
10水瓶座
11魚座
12牡羊座

の日もあります。
牡羊座を基点とする日は、魚座は12番目、牡牛座を基点とする日は、魚座は11番目です。
基点となる星座が1、その次の星座が2となり、以降順繰りに回すだけなんですが
いちいちコピーしたりずらしたりするのに疲れました。

基点星座を選んだら、自動的に判別してくれる関数はないでしょうか?
ちなみに、今作ってるファイルの一部を添付します。

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

Aベストアンサー

>基点星座を選んだら、自動的に判別してくれる関数はないでしょうか?
セルG3に =INDEX(Sheet2!$A$2:$L$13,ROW(A2)-1,MATCH($B$3,Sheet2!$A$1:$L$1,0)) の式を入れて、下方向まで式をオートフィルコピーします。
一応あなたが示された画像をそのまま作成し、(Sheet2も)実際やってみましたのでお試しください。

※セルB3の起点星座をいちいち手入力しているのでしたら、次の方法でドロップダウン出来るようにしてみると、もう少し楽になるかも。
ドロップダウンの作り方。
①セルB3をクリックしておきます
②「データ」タブから「データツールグループ」内の「データの入力規則」と書いてあるところの上のアイコンをクリック
③「設定」タブより「入力値の種類」の「すべての値」の右側の▼をクリックして「リスト」を選択
④「元の値」の枠内をクリックしてSheet1の12星座を入力している範囲を選択(F3~F14まで)
⑤選択し終わったら「OK」を押します。
これでセルB3をクリックすると▼の表示が現れドロップダウンで各星座を選択できるようになります。
星座をいろいろ選択することで、順番も自動で変わります。

>基点星座を選んだら、自動的に判別してくれる関数はないでしょうか?
セルG3に =INDEX(Sheet2!$A$2:$L$13,ROW(A2)-1,MATCH($B$3,Sheet2!$A$1:$L$1,0)) の式を入れて、下方向まで式をオートフィルコピーします。
一応あなたが示された画像をそのまま作成し、(Sheet2も)実際やってみましたのでお試しください。

※セルB3の起点星座をいちいち手入力しているのでしたら、次の方法でドロップダウン出来るようにしてみると、もう少し楽になるかも。
ドロップダウンの作り方。
①セルB3をクリックしておきます
②...続きを読む

Qエクセル SUMPRODUCT関数について

SUMPRODUCT関数を使い、以下の合計を件数を出したいのですが、いろいろ調べてもよくわかりませんのでご教示をお願いいたします。(エクセル2010使用)

【やりたいこと】
以下の表を使用し、「みかん」と「ばなな」を購入した件数を月ごとに合計して表示する関数を作りたい。4月の合計件数はB8セル、5月はB9セル、6月はB10セルに表示できるようにします。

     (A列)  (B列)
(行) 種類  購入日
 1  みかん 4月3日
 2  ばなな 4月15日
 3  りんご 5月6日
 4  りんご 5月30日
 5  ばなな 6月7日
 6  みかん 6月9日
 7
 8 【結果】 4月 2
 9      5月 0
10      6月 2

よろしくお願いします。

Aベストアンサー

こんにちは!

今回の質問の場合は「OR」条件になりますので、足し算にする必要があります。

↓の画像ではA8~A10セルの表示形式をユーザー定義から
0月
とし、単に4とか5という数値のみを入力しています。

B8セルに
=SUMPRODUCT((MONTH(B$1:B$6)=A8)*(A$1:A$6="みかん"))+SUMPRODUCT((MONTH(B$1:B$6)=A8)*(A$1:A$6="ばなな"))

という数式を入れフィルハンドルで下へコピーすると
画像のような感じになります。m(_ _)m

QexcelのFalseとTrue

添付図は赤の間違い個所を発見しようとするものです。
K列はあらかじめソートされており、同じものが続いています。
L列はK列に対する属性です。
従って、L399とL403は間違いで、これを発見しようとしています。
M列はM398を下へコピーしたもので、M400とM404はなぜTRUEとならないのでしょうか。
正と正が合わさると、虚になっています。

しかし、これが仕様なら間違い個所を発見する方法を考えてもらえませんか。
なお、ソフトはExcel2013、Win10です。

Aベストアンサー

>実際のデータは夫々E列、G列、K列となっています。
>マクロのKLMを単純にEGKに置き換えてよいでしょうか。

それでOKです。
"K"->"E"
"L"->"G"
"M"->"K"
に置き換えてください。
それで実行してみてください。

Qエクセル リストで指定したセルを別シートで参照し、参照セルから指定セルを表示させる方法?

エクセルで自社式の伝票を作成しようと思っています。

シート1のA列2行目から下に向かって商品名リストが、
シート1の1行目B1から右に向かって事業所名が入り、いずれも増加していきます。
シート1のB2以降は商品単価が入り、事業所単位で単価の違うものを一覧化してあります。

シート1 【イメージ】
          B1     B2    B3
         事業所1  事業所2  事業所3
A2 商品イ    200円   空欄    空欄
A3 商品ロ    空欄    330円   空欄
A4 商品ハ    180円   空欄    170円

シート2のA列では事業所1・2・3がドロップダウンリスト表示されるようになっており、
シート2のB列で、A列でリスト表示した現業名に対応する商品リストだけをリスト表示させ、
更にはC列でその価格を表示したいのですがうまくいきません。

エクセル関数に強い方、どうか教えていただけませんか?

Aベストアンサー

●入力シートのA列一番下の事業所リストから、商品名を表示する
Sheet2!E1セルに
=IFERROR(INDEX(Sheet1!A:A,SMALL(IF(INDEX(Sheet1!B$2:D$20,,MATCH(LOOKUP("ーー",A:A),Sheet1!$B$1:$D$1,0))<>"",ROW(Sheet1!B$2:B$20)),ROW(A1))),"")
[Ctrl]+[Shift]+[Enter]で確定。配列数式、{}で囲まれる。
下へオートフィル

Sheet2!B列の入力規則のリスト
=OFFSET(E$1,,,COUNTIF(E:E,"?*"))


●G列以降(右)に商品名を表示する(計算が重くなり、非現実的)
Sheet2!G2セルに
=IFERROR(INDEX(Sheet1!$A:$A,SMALL(IF(INDEX(Sheet1!$B$2:$D$20,,MATCH($A2,Sheet1!$B$1:$D$1,0))<>"",ROW(Sheet1!$B$2:$B$20)),COLUMN(A2))),"")
[Ctrl]+[Shift]+[Enter]で確定。配列数式、{}で囲まれる。
右へ下へオートフィル

Sheet2!B列の入力規則のリスト
=OFFSET($G1,,,,COUNTIF($G1:$Z1,"?*"))

●共通
Sheet2!C2セル
=INDEX(Sheet1!$B$2:$D$4,MATCH($B2,Sheet1!$A$2:$A$4,0),MATCH($A2,Sheet1!$B$1:$D$1,0))

●入力シートのA列一番下の事業所リストから、商品名を表示する
Sheet2!E1セルに
=IFERROR(INDEX(Sheet1!A:A,SMALL(IF(INDEX(Sheet1!B$2:D$20,,MATCH(LOOKUP("ーー",A:A),Sheet1!$B$1:$D$1,0))<>"",ROW(Sheet1!B$2:B$20)),ROW(A1))),"")
[Ctrl]+[Shift]+[Enter]で確定。配列数式、{}で囲まれる。
下へオートフィル

Sheet2!B列の入力規則のリスト
=OFFSET(E$1,,,COUNTIF(E:E,"?*"))


●G列以降(右)に商品名を表示する(計算が重くなり、非現実的)
Sheet2!G2セルに
=IFERROR(INDEX(Sheet1!$A:$A,SMALL(IF(INDEX(Sheet...続きを読む

Qエクセル関数の不思議?

エクセル関数でお聞きします。
別表のようにc5に 258と数値があります。
これを 6行目に Left関数、Mid関数、Light関数で それぞれ 2,5,8と分解します。
次にこの 2,5,8を Sum関数で =sum(c6:e6)で計算すると 0と表示されます。
次に =c6+d6+e6 で個々に足し算すると 正解の15が表示されます。
これはなぜでしょうか。
また、今状態で SAM関数で正解を導くことはできますか?

Aベストアンサー

LEFT等で抽出したものは文字列となるからでしょうね。
SUMに反映させたければ、6行目の式の最後に*1とか+0を追加してみましょう。

Qエクセルで特定の数字だけ勝手に変換されてしまいます

エクセル2010で48,609.793と入力するのですが
入力後のセルを見てみると48,609.792999999と
勝手に変換されてしまいます。
48,609.792や48,609.794ではそのままなのですが
なぜなのでしょうか?
計算上で入力した数値を使用したく困っています。

Aベストアンサー

10進数をコンピュータ内部では2進数の形で保持することによる誤差だそうです。
なるべくこの誤差が出ないようにExcelは工夫されているそうですが、
特定の数字を入力すると「99999…」が現れるのだとか。
この質問を見て調べるまで全然知りませんでした。
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_other/excel/bbaaa7f0-5e73-4d7c-aa05-6709a3357d26
https://support.microsoft.com/ja-jp/help/813530

計算式には数字を丸める関数を入れると対処できると思います。
ROUNDやROUNDUP関数で引数を3にしてみてください。
http://kokoro.kir.jp/excel/round.html


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

人気Q&Aランキング

おすすめ情報