位置情報で子どもの居場所をお知らせ

シート内に入力済みのすべての数式を、一度に絶対参照に転換できる方法はありませんか。

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

A 回答 (5件)

VBAを使わないと出来ません。


参考のため、一応コードを貼っておきます。

Sub WK()
Dim c As Range
For Each c In Selection
If c.HasFormula Then
c.Formula = Application.ConvertFormula(Formula:=c.Formula, _
FromReferenceStyle:=xlA1, ToAbsolute:=xlAbsolute)
End If
Next
Application.StatusBar = False
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
大変参考になりました。

お礼日時:2016/08/18 17:40

#4の回答者です。



「シート内に入力済みのすべての数式を、一度に絶対参照に転換」する理由

#3さんの質問を質問者に代わって私が回答するというのは、まったくもってでしゃばった行為ですし、質問者さんの回答とは同じだと思っているわけではないのですが、なぜ、こんなマクロのテクニックが残っているかお答えさせていただきたく思いました。

端的にいうと、この絶対参照に変更というのは、Lotus123->Excel の人には、あまり馴染みがないでしょうけれども、昔からのPCユーザーの最初の表計算は、Excelの前進ともいえる、同じ作者のMS-Multiplanで、各社各様にOEM販売され、富士通のワープロにさえバンドルされていました。その仕様が、R1C1方式で、Multiplan は、日本では、NEC 98モデルの普及とともに使い続けられ、その製品は1992年頃を、最後に約10年で終えました。

だから、一部の人には、R1C1方式は馴染みが深かったわけです。それで、ずっとR1C1方式で使い続ける人が残っていたわけです。

A1方式には相対参照と絶対参照の差はあまり大きく変化しないのですが、このR1C1方式は、相対参照と絶対参照では、まったく考え方が違うというか、相対参照には、セル位置の情報がないので、どこを参照しているのかまったく分からないわけです。そのために、絶対参照式に変える必要性を感じたわけです。今となっては、そんな要求する人は皆無だとは思いますが……。

さて、問題のマクロは、私の言葉どおりなら文句はないのでしょうから、このコンバートは、シートが、A1スタイル上でないと、今のところ、私の所では変換しません。
    • good
    • 0
この回答へのお礼

補足欄を使えないので、この欄をお借りして。

#2さんのご回答欄に#3さん宛ての内容を書いてしまいました。
#2さん、どうも失礼いたしました。
そして、#3さんともども大変参考になりました。

お礼日時:2016/08/18 17:51

すでに回答がでてしまいましたが、古典的マクロのひとつです。


私は、まだ、VBAを習いたてで、たぶん、#3さんはご存知かと思いますが、芳坂さん(日経BP21)が書いていたマクロと、自分が書いたものとを見比べたことを思い出します。私は、当時と、それほど変わらないかもしれません。未だに、わかっていないところがあります。

If Not r.HasArray Then 
この部分は、私は知りませんでした。

'//
Sub ConvertFormulas()
Dim rng As Range
Dim rf As Range
Dim r As Range
Set rng = ActiveSheet.UsedRange
On Error Resume Next
Const AB As Integer = xlAbsolute '絶対座標 'xlRelative '相対座標

Set rf = rng.SpecialCells(xlCellTypeFormulas)
If Err <> 0 Then Exit Sub
On Error GoTo 0
If Application.ReferenceStyle = xlR1C1 Then 'R1C1 方式はA1方式の戻す
  Application.ReferenceStyle = xlA1
End If
Application.ScreenUpdating = False
For Each r In rf.Cells
    If Not r.HasArray Then '配列数式は除外されます。
    r.Formula = Application.ConvertFormula( _
    Formula:=r.Formula, FromReferenceStyle:=xlA1, _
    toAbsolute:=AB, RelativeTo:=r)
    End If
Next
Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
わたしのような素人に過分なる知識を開陳していただき恐縮です、
どうも猫に小判といった印象で・・
これに懲りずに、またよろしくお願い申し上げます。

お礼日時:2016/08/18 17:48

マクロを使用しない関数や置換機能ではできないけど、長年 Excel を使用して来た私には貴方が希望する機能の必要に遭遇したことがありません。


参考までに教えてください。「シート内に入力済みのすべての数式を、一度に絶対参照に転換」したくなったのはなぜですか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
セルの位置を変更する必要が生じまして、その際、絶対参照にしとかないと、あとが面倒になることに気づいたという次第。
なぜすべてなのか?という疑問を持たれたのかもしれませんが、大幅な手直しをしたくなったわけです。
まあ、先を見通せない素人の悲しさといったところですかね。

お礼日時:2016/08/18 17:44

そんなことできやしない。



自分ならシートを丸ごと複製する。
そして絶対参照が必要な理由を考えてそこからどうするかを再考する。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
セルの位置を変更する必要が生じまして、その際、絶対参照にしとかないと、あとが面倒になることに気づいたという次第。
なぜすべてなのか?という疑問を持たれたのかもしれませんが、大幅な手直しをしたくなったわけです。
まあ、先を見通せない素人の悲しさといったところですかね。

お礼日時:2016/08/18 17:43

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

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

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

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

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

Qシート全体を他のブックのシートとリンクさせたい

エクセル2010を使っている者です。

(1)Aファイル中のあるシート全体をBファイル中の指定したシート(別ファイルになってますが、フォーマットはほぼ同じです)とリンクさせ、外部参照してデータを取り込めるようにすることは可能ですか?

(2)また、AファイルがBファイルのデータを外部参照するというよりは、Aファイル、Bファイルの当該シートに変更があった場合は、お互いに変更箇所を取り込めるようにするこは可能ですか?
(これは外部参照ではなく、共有というのでしょうか)


どちらか片方であってもありがたいので、ご教授願います。

Aベストアンサー

基本の手順としては
「元」になるAブックの該当シートのセル(セル範囲)をコピー
「先」となるBの該当セル(セル範囲)に形式を選んで貼り付けの「リンク貼り付け」する
ことで、元から先にデータをリンクします。

#その後必要の範囲に応じて、書式を工夫したりもうちょっと数式を作成したりして、見た目を整えます。



エクセルのデータ参照の流れは、常に「元」から「先」への一方向だけです。
双方向にリンク(反映)する方法はありません。

エクセルでは通常、全ての「元」となるマスタデータベース(リスト)を1本(1つのシートに)用意、全ての編集や修正、追加等はすべてマスタのリストに対して行い、帳票(AのシートやBのシート)は、共にマスタから必要なデータを参照して「表示するだけ」という具合に作成するのが上手なエクセルの使い方です。


ご相談のように双方向のデータ反映がどうしても必要であれば、たとえばアクセスのように、そういう事ができるデータベースソフトを利用します。
まぁ出来ると言えばエクセルマクロを駆使して、そういう事ができるようコツコツ手作りする事もやればできますが、大概は苦労ばっかり多くて益はありません。

基本の手順としては
「元」になるAブックの該当シートのセル(セル範囲)をコピー
「先」となるBの該当セル(セル範囲)に形式を選んで貼り付けの「リンク貼り付け」する
ことで、元から先にデータをリンクします。

#その後必要の範囲に応じて、書式を工夫したりもうちょっと数式を作成したりして、見た目を整えます。



エクセルのデータ参照の流れは、常に「元」から「先」への一方向だけです。
双方向にリンク(反映)する方法はありません。

エクセルでは通常、全ての「元」となるマスタデータベース(...続きを読む

Q複数のエクセル相対参照を絶対参照に一発変換したい。

一つの相対参照を例えば横方向にいくつか複写して、
複写された各セルの相対参照を、絶対参照化する時
各セルにポイントをおいて「F4」プッシュで処理
しています。これを範囲指定して一度に変換する方法があれば大変助かるのですが。
良い方法があったら教えて下さい。

Aベストアンサー

下記参考URLに相対参照を絶対参照にするマクロが書いてあります。
http://www2.odn.ne.jp/excel/waza/macro.html#SEC22

でもひょっとしたらこれだけでは使い方がわからないかもしれないので,
使い方例を1つだけ紹介しておきます。
わかっていたら以下は無視してください。


「ツール」→「マクロ」→「マクロ」から
マクロダイアログボックスを出し,
「マクロ名」の欄に「test」と記入→「作成」をクリック。
するとVisual Basicエディタが開き,すでにModule1に
------------------
Sub test()

End Sub
------------------

というものができていると思うので,そこを

-----------------
Sub test()
Dim c As Range

For Each c In Selection
If c.HasFormula Then
c.Formula = Application.ConvertFormula(Formula:=c.Formula, _
FromReferenceStyle:=xlA1, ToAbsolute:=xlAbsolute)
End If
Next

End Sub
-----------------

にかきかえ,Visual Basicエディタえを閉じます。
再び「ツール」→「マクロ」→「マクロ」から
マクロダイアログボックスを出し,
「オプション」から,マクロオプションでショートカットキーを割り当てれば,
Ctrtキー+割り当てたキーでそのマクロが実行されます。

使い方は,
For Each c In Selectionですから,
取りあえず変換したいセルを全て選び,
Ctrtキー+割り当てたキーを押すというものです。

参考URL:http://www2.odn.ne.jp/excel/waza/macro.html#SEC22

下記参考URLに相対参照を絶対参照にするマクロが書いてあります。
http://www2.odn.ne.jp/excel/waza/macro.html#SEC22

でもひょっとしたらこれだけでは使い方がわからないかもしれないので,
使い方例を1つだけ紹介しておきます。
わかっていたら以下は無視してください。


「ツール」→「マクロ」→「マクロ」から
マクロダイアログボックスを出し,
「マクロ名」の欄に「test」と記入→「作成」をクリック。
するとVisual Basicエディタが開き,すでにModule1に
------------------
Sub test()...続きを読む

Q別シートのセルを絶対参照にする

office2007、Excelで別シートのセルを絶対参照する方法を教えて下さい。
セルに「=シート名セル番地」を力した場合は、
セル番地を$で絶対参照にしても
参照先シートのその上に行を挿入すると
$A$5を指定していても行を挿入した場合は
自動的に$A$6になってしまいます。
別シートに行を挿入しても参照先のセルを固定する方法を教えて下さい。

Aベストアンサー

INDIRECT関数なら、文字列として範囲を指定できるので、行挿入や列挿入で勝手に指定範囲が変わることはありません。

例:
 INDIRECT(参照文字列,参照形式)
 と、使います。
 =INDIRECT("Sheet1!A1",TRUE)


※ INDIRECT関数の詳細は Excelのヘルプや解説サイトなどで確認してください。

Qエクセル STDEVとSTDEVPの違い

エクセルの統計関数で標準偏差を求める時、STDEVとSTDEVPがあります。両者の違いが良くわかりません。
宜しかったら、恐縮ですが、以下の具体例で、『噛み砕いて』教えて下さい。
(例)
セルA1~A13に1~13の数字を入力、平均値=7、STDEVでは3.89444、STDEVPでは3.741657となります。
また、平均値7と各数字の差を取り、それを2乗し、総和を取る(182)、これをデータの個数13で割る(14)、この平方根を取ると3.741657となります。
では、STDEVとSTDEVPの違いは何なのでしょうか?統計のことは疎く、お手数ですが、サルにもわかるようご教授頂きたく、お願い致します。

Aベストアンサー

データが母集団そのものからとったか、標本データかで違います。また母集団そのものだったとしても(例えばクラス全員というような)、その背景にさらならる母集団(例えば学年全体)を想定して比較するような時もありますので、その場合は標本となります。
で標本データの時はSTDEVを使って、母集団の時はSTDEVPをつかうことになります。
公式の違いは分母がn-1(STDEV)かn(STDEVP)かの違いしかありません。まぁ感覚的に理解するなら、分母がn-1になるということはそれだけ結果が大きくなるわけで、つまりそれだけのりしろを多くもって推測に当たるというようなことになります。
AとBの違いがあるかないかという推測をする時、通常は標本同士の検証になるわけですので、偏差を余裕をもってわざとちょっと大きめに見るということで、それだけ確証の度合いを上げるというわけです。

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

QEXCEL中のSHEET名の検索方法

たくさ~~~んのSHEETで構成られた一つのEXCELファイルの中に、
必要なSHEET名がはっきり解っていて、そのSHEETを素早く検索する方法はありますか?
ちなみに、右クリックでSHEETのリストが出るのが解ります。しかし、SHEETの数が大変な量なので、その中で目で欲しいSHEETを探すのも苦痛なので、どなたか検索できる方法をご存知なら、是非教えて頂きたいです。
宜しくお願いします。

Aベストアンサー

任意のシート名にカーソルを合わせて、「右クリック」→「すべてのシートを選択」して下さい。 次にツールバーの「編集」→「検索」で検索する文字列に検索したいシート名の全部、あるいは一部を入力して検索をかければ出来ますよ。 出来ましたか?

Q行列を入れ替えるができません。制限があるのでしょうか?

行と列を入れ替えたいので、コピー→形式を選択して貼り付けでA1にカーソルをおき「行列を入れ替える」にチェックを入れましたが下記のメッセージがでます。

コピー領域と貼り付け領域の形が違うため、情報を貼り付けることができません。

354行 AK列まであります。
限界行数などあるのでしょうか?
セルの結合はありません。
おわかりの方教えてくださーい!

Aベストアンサー

>限界行数などあるのでしょうか?

Excel2003 までは、列数の限界が255列です。
2007にすれば16384列になるので、問題は起きなくなります。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QExcelで日別に入力されたデータを月別に集計するにはどうしたらいいのでしょうか。

Excelで月別の集計をしたいのですが
例えば
  日付    数量
10月25日  200
10月27日  150
10月30日  120
11月 1日  200
11月 3日  150
のように、日付が飛び飛びで連続していなくい日々の数量を、上の行から順番に入力していった場合に(月が替わる行が決まっていない)月別の集計を取る方法はないでしょうか。


 

Aベストアンサー

どのように集計する月を指定するのかが書かれていませんが、例えば11月分の合計を出したいなら

1)11月までの合計から10月までの合計を引く方法
 =SUMIF(A:A,"<=11/30",B:B)-SUMIF(A:A,"<=10/31",B:B)

2)月が「11」のB列を合計する方法
 =SUMPRODUCT((MONTH(A2:A100)=11)*(B2:B100))

なども考えられます。

でもエクセルなら一番オーソドックスな方法はピボットテーブルでしょう。C列に
 =TEXT(A1,"YYYY/MM")
で「2008/11」のような文字列を生成しておいてピボットテーブルで集計すれば、シート上にある全ての月の合計が一発で求められます。
ピボットテーブルの使い方はGoogleなどで検索したらたくさん見つかります
http://www.viplt.ne.jp/tomy/pibot.html


人気Q&Aランキング