送られてきたエスセルの表を変更し様としましたが
「配列の変更は出来ません」・・・と出てしまいました。
シ-ト間のリンク解除方法が分りません。
教えてください。

A 回答 (2件)

こんにちは



 複数のセル範囲に配列数式が入力されている場合、その一部を選択してDeleteキーを押すと「配列の一部を変更できません」というエラーメッセージが表示され、数式を削除することができません。
 そういう場合には、配列数式が入力されている範囲を全て選択してから削除します。

1.Ctrl+/ (アクティブセルを含む配列を選択するショートカットキー)
2.Delete

参考URL:http://www2.odn.ne.jp/excel/
    • good
    • 0
この回答へのお礼

ありがとう御座いました。

お礼日時:2001/01/23 19:36

埋め込まれてある式が不要なら、


一旦別のシートにコピーした方がいいとおもいます。
編集したいシートの全体を指定して、コピーし、
「形式を指定して張り付け」で、「値」として
貼り付けることを選択します。

その後は普通に編集可能です。

上記のやり方だと、罫線等書式情報がコピーされませんが、
「形式を指定して張り付け」で、「書式」を
重ねてコピーすれば、大丈夫ですよ。
    • good
    • 0
この回答へのお礼

御礼が遅くなってしまい申し訳ありません。
ありがとう御座いました。

お礼日時:2001/01/23 19:37

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

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

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

QCなどで要素の数が固定できない配列はどうやって実現しますか?

配列について質問します。

BASIC系では配列は動的配列で要素の数が自由に変えられます。
ですが、C等では宣言時に配列の要素の数を決めておかねばならなかったと思います。
もし、C等で要素の数がわからないけど、配列を使いたい場合、どうすればいいのでしょうか?
どのように実現するのでしょうか?
配列と同じ使い勝手なら配列でなくともかまいません。

今はVBAでプログラムを組んでいるので、動的配列を使えばすむのですが、いずれ他の言語に移植したいので、できるだけ使わないようにしたいと思っています。

よろしくお願いいたします。

Aベストアンサー

malloc等のメモリ確保はNo.1さんの回答のリンクが詳しいですね。
C言語でプログラムを組む場合は、大抵はこれらメモリ操作関数のお世話になります。

これに加えて、C++やJavaのライブラリでは、動的配列クラスというものが使えます。
C++だとvectorやlist、JavaだとVectorやArrayListあたりですね。
他にも、言語や環境に依存したライブラリ、フレームワークで
様々な動的配列の機構が用意されていたりします。

簡単にまとめると、
・malloc、free、realloc等を使う方法 → ReDim
・動的配列クラス → Collection
のようなものだと考えてください。

Qエクセル、シ-ト1とシ-ト2のデ-タをシ-ト3で集計したい。

4月分(シ-ト1)
(1)机----2個 (2)スタンド-----4台 (3)電子レンジ---3台
(4)椅子--5個 (5)テレビ------6台

5月分(シ-ト2)
(1)机----4個 (2)植物-----9個   (3)こたつ---10台
(4)テレビ----3台  (5)ハンカチ---4個  (6)袋---2個
(7)ボ-ル----5個
4月分と5月分をシ-ト3で集計したいのですが。
4月と5月では売れた商品が同じ物もあれば、異なる物も
あります。売れた項目も違います----(1)~(5)と(1)~(7)。

Aベストアンサー

こんにちは。

A列に品名、B列に数が1行目から入力されているとします。
シート3でメニュー「データ」→「統合」でダイアログボックスを表示します。
「集計の方法」を「合計」に設定。
統合元範囲でシート1のデータの範囲(A1:B6)を範囲選択し、「追加」ボタンをクリック。
続いてシート2のデータ範囲(A1:B7)を範囲選択し、「追加」ボタンをクリック。
「統合の基準」の「左端列」にチェック。
「OK」をクリック。

これでどうでしょうか?

QC#かJavaで、配列の中から別の配列を探し出す

お世話になります。

C#かJava(CやC++は入れない)で、特定の配列の中に、該当する
配列があるかどうかを調べるメソッドがあれば、教えてください。

例えば…

int[] a={0,0,0,1,2,3,4,5,6,7};
int[] b={3,4,5};

ならば、『5』が返ってくるなどです。

力技では、aの配列を順にみていき、bの一番目と同じなら、
お互いの配列の次の要素を比較…などとやっていくのですが、
これらの方法を、標準のメソッドがあれば…と思い、
質問させていただきました。

以上、よろしくお願いいたします。

Aベストアンサー

Javaだけの話です。(以下、indexはbの添字)
int型配列aに含まれるint型配列bの要素の先頭の添字だけ欲しい場合
Arrays.binarySearch(a,b[index]);
int型配列aに含まれるint型配列bの要素の全添字欲しい場合
Arrays.binarySearch(a,from,to,b[index]);//from,toは配列aの走査対象要素

配列がオブジェクト型でもいいなら、Listを実装したクラス(ArrayListなど)に放り込みます。

オブジェクト型配列aに含まれるオブジェクト型配列bの要素があるか否か
listA.contains(b[index]);
オブジェクト型配列aに含まれるオブジェクト型配列bの要素の先頭の添字だけ欲しい場合
listA.indexOf(b[index]);
オブジェクト型配列aに含まれるオブジェクト型配列bの要素の最後の添字だけ欲しい場合
listA.lastIndexOf(b[index]);

最初に見つかる添字だけ欲しいなら標準ライブラリで取得できますが、
全添字が欲しいとなると途端に泥臭くなります。

Javaだけの話です。(以下、indexはbの添字)
int型配列aに含まれるint型配列bの要素の先頭の添字だけ欲しい場合
Arrays.binarySearch(a,b[index]);
int型配列aに含まれるint型配列bの要素の全添字欲しい場合
Arrays.binarySearch(a,from,to,b[index]);//from,toは配列aの走査対象要素

配列がオブジェクト型でもいいなら、Listを実装したクラス(ArrayListなど)に放り込みます。

オブジェクト型配列aに含まれるオブジェクト型配列bの要素があるか否か
listA.contains(b[index]);
オブジェクト型配列aに含まれるオ...続きを読む

Qエクセル シ-トのセルを他のシ-トに貼り付けたい

何時も、色々教えていただき有難うございます。
過去の質問を調べたのですが?探しきれなかったので、教えて頂きたいのですが?
シ-トのセルを他のシ-トに貼り付けたいのですが、
例えば
sheet2のA1セルに
=sheet1!A2
sheet2のA2セルに
=sheet1!B2 とした時、
この作業を
=sheet1!T2 まで行うには、一つ一つ作業を行わなければならないのでしょうか?

これを、オ-トフィルで行う事は出来ないのでしょうか?

Aベストアンサー

OFFSET関数を使ってはいかがでしょう?

=OFFSET(Sheet1!$A$1,0,ROW()-1)

QC言語の2次元配列 容量が大きすぎる場合の対処方法

私はC言語をもちいて2次元配列を作ろうとしています。

しかし、配列数が double c[10000][10000];
と大きいものにすると、エラーになってしまいます。

もちろん小さい double c[10][10];
のような配列では問題ありません。

malloc関数とかも調べたのですがなかなかいい文献が見つからずに
困っています。
どうかいいご意見があればよろしくお願いします。

Aベストアンサー

No.5です。
>今はa[],b[]に10000個の配列があります。これをc[a][b]に格納するためにどうするか、例文を書いていただいてもよろしいでしょうか?

例文ではありませんが、感じだけ書きましたので参考にしてください。
パラメタの順序や型は正しくないと思いますので、各関数はよく調べて使ってください。あくまで、こんな感じ、ということです。
-------------------
#include <stdio.h>
#include <io.h>

double read_c(FILE *fp, int x, int y) {
 double c;
 fseek(fp,(x*10000+y)*8L, SEEK_SET);
 fread(&c, 1,8, fp);
 return c;
}

void write_c(FILE *fp, double *c, int x, int y) {
 fseek(fp,(x*10000+y)*8L, SEEK_SET);
 fwrite(c, 1,8, fp);
}

int main(void)
{
 FILE *fp;
 double c,s;
 int x,y;
 int a[10000],b[10000];
 
 fp = fopen("c.dat","w+b");// double c[10000][10000]; の意味
 
 for(x=0; x<10000; x++) {
  for(y=0; y<10000; y++) {
   c=a[x]*b[y];
   write_c(fp, &c, x,y);// c[x][y]=a[x]*b[y]; の意味
  }
 }
 
 for(x=0; x<10000; x++) {
  s=0;
  for(y=0; y<10000; y++) {
   s += read_c(fp, x,y);// s += c[x][y]; の意味
  }
  b[x] = s / 10000;
 }
 
 fclose(fp);
 return 0;
}

No.5です。
>今はa[],b[]に10000個の配列があります。これをc[a][b]に格納するためにどうするか、例文を書いていただいてもよろしいでしょうか?

例文ではありませんが、感じだけ書きましたので参考にしてください。
パラメタの順序や型は正しくないと思いますので、各関数はよく調べて使ってください。あくまで、こんな感じ、ということです。
-------------------
#include <stdio.h>
#include <io.h>

double read_c(FILE *fp, int x, int y) {
 double c;
 fseek(fp,(x*10000+y)*8L, SEEK_SET);...続きを読む

Qエクセル2003 2時間15分20.11秒をシリアル値にして2時間15分20.11秒と表示する方法

エクセル2003です
TIMEを合計するため
2時間15分20.11秒と入力したセル(文字列)をシリアル値に変えて2時間15分20.11秒と表示したいのです。
よろしく御願いします。

Aベストアンサー

◆A1に文字列が入力されていて、別のセルに
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"時間",":"),"分",":"),"秒",)*1
★表示形式をユーザー定義で、 h"時間"mm"分"ss.00"秒" とします

Qc言語の配列の先頭アドレスが偶数アドレスとなる理由について

c言語の配列の先頭アドレスが偶数アドレスとなる理由について

下記のように実行結果をで見ると、配列Sの先頭アドレスと配列Cの先頭アドレス共に偶数アドレスなる理由を教えて頂きたい。

/*list0105*/
#include <stdio.h>
main()
{

char na=1;
char nb=1;
char c[2] ={1,2};
char s[3] = {1,2,3};
char nc=1;
char nd=1;

printf("%p\n",&na);
printf("%p\n",&nb);
printf("%p %p \n", &c[0],&c[1] );
printf("%p %p %p \n", &s[0],&s[1] ,&s[2] );
printf("%p\n",&nc);
printf("%p\n",&nd);


}

実行結果
0xbffff8cf
0xbffff8ce
0xbffff8cc 0xbffff8cd ← c配列
0xbffff8b0 0xbffff8b1 0xbffff8b2 ← S配列
0xbffff8af
0xbffff8ae

c言語の配列の先頭アドレスが偶数アドレスとなる理由について

下記のように実行結果をで見ると、配列Sの先頭アドレスと配列Cの先頭アドレス共に偶数アドレスなる理由を教えて頂きたい。

/*list0105*/
#include <stdio.h>
main()
{

char na=1;
char nb=1;
char c[2] ={1,2};
char s[3] = {1,2,3};
char nc=1;
char nd=1;

printf("%p\n",&na);
printf("%p\n",&nb);
printf("%p %p \n", &c[0],&c[1] );
printf("%p %p %p \n", &s[0],&s[1] ,&s[2] );
pr...続きを読む

Aベストアンサー

メモリの配置はコンパイラとコンパイルオプションに依存します。
デフォルトだと、32ビットのメモリ処理単位=4バイトとか8バイトが多いかと。
理由は32ビットCPUが4バイト単位でメモリにアクセスするのでアクセス効率を優先したためです。

例えば、
0xbffff8cc 0xbffff8cd ← c配列
0xbffff8ce 0xbffff8cf 0xbffff8d0 ← S配列
だとしたら、S配列の内容全てを参照するためにCPUは0xbffff8ccと0xbffff8d0の合計8バイトにアクセスする必要が出てきます。無駄ですよね。

QExcelの表を別の表に引用するにはピポットを07→旧で読み取れる様にするには

ExcelでA・B・C表を作りあとで一つの表に引用して飛ばす様にするにはどうすれば良いでしょうか
(そのままの場合と数値だけ欲しい場合と有りますが)
(コピペしか有りませんか…それともまったく無知なマクロ使わねば成りませんか)

あとピポットテーブルをExcel2007て作って会社のExcelの古いバージョンではそのままでは表示出来ずバックアップを旧バージョンにしても新し過ぎてピポットテーブルは読み取れないんですが他の方法有りませんか併せて教えて頂ければ幸いです

Aベストアンサー

※各シートに入力されたデータを合計して、
 1つのシートに集計としてまとめたい時は
 3D集計(串刺し集計)が便利

※表の構造が違う場合には3D集計は使えない
 メニューバー[データ]→[統合]

QC言語でunsigned char配列を連結する方法ってありますか?

C言語でunsigned char配列を連結する方法ってありますか?

例えば
unsigned char test[]={0x00,0x02,0x03};
unsigned char test2[]={0x05,0x06};
という配列があったとして

test[]という配列のあとにtest2の配列を追加することは可能でしょうか?
{0x00,0x02,0x03,0x05,0x06}という配列になればOKです。

よろしくお願いします。

Aベストアンサー

testの領域は3バイトのため、それ以上の配列を追加することは出来ません。
もし、testのサイズが5バイト以上あれば、test2を追加することは、できます。
その場合は、memcpy(&test[3],test2,2); とすれば、
testの4バイト目からあとに、test2の2バイトが追加されます。
新たに配列を作成して良いなら、
unsigned char test3[5];として
memcpy(test3,test,3);
memcpy(&test3[3],test2,2);
とすれば、test3はtestとtest2を連結したものとなります。

Q配列数式の解除

配列数式だらけのシートがあるんですけど
少し途中の行数を増やしたりしたいと思っています。
行を挿入しようとすると
「配列の一部を変更できません」
とエラーになってしまいます。
配列数式が同じモノをまとめて移動すれば
移動は出来るのですけど
他の部分の計算式がエラーになったりします。
うまくまとめて配列数式を解除できませんか?

Aベストアンサー

こんにちは。maruru01です。

以下の方法で解除出来ます。

・配列数式が入力されているセルをどれか1つ選択します。
・[Ctrl]+[/]を押すと、配列範囲全体を選択します。
・[F2]を押すか、数式バーの中をクリックして編集モードにします。
・[Ctrl]+[Enter]で確定します。

これで、配列数式ではなくなります。
(「{}」がなくなります)
あとは、行の削除・挿入や個々の数式の個別編集などをして下さい。

なお、上記の方法は以下のサイト(第5回)に載っています。
このサイトは、配列数式を説明した結構有名なサイトです。

http://pc21.nikkeibp.co.jp/special/hr/

参考URL:http://pc21.nikkeibp.co.jp/special/hr/


人気Q&Aランキング

おすすめ情報