Excelでフィルター機能により抽出したセルの一つに数式を入れ、同じ列のほかのセルを範囲選択し当該数式をコピー&ペーストすれば、抽出されているその列のセルに数式が入ると思います。
この抽出した状態のままで数式を数値に変えたいのですが、どのようにすれば可能でしょうか。
(抽出した状態のため形式を選択して貼付けを使用することができない。またAlt+;で可視セル選択→Ctrl+Rを行っても、形式を選択することができないため数式のままとなり数値に変えることができない)
一度フィルター解除し数式を数値に変更後再度フィルターをかけて復旧する ということは実務上できません…。
詳しい方、何卒 よろしくお願い申し上げます。
A 回答 (10件)
- 最新から表示
- 回答順に表示
No.10
- 回答日時:
No.5です。
>ご回答ありがとうございます。ただ今回フィルターを解除せずに数値化
>したいという状況がございまして…
>フィルタの条件が複雑なため解除後復旧できないおそれがあるためです。
>マクロの方向で進めてみます。
とのことで、マクロで解決する方針のようです。
No.9さんのマクロを個人用マクロブックに保存してショートカットキーを登録すれば、数値化するセルを選択し、ショートカットキーを押すだけで完了すると思います。とはいうものの、
>当方マクロ未経験者ですが・・・
とおっしゃっているので、方針に反しますがマクロを使用しない方法を記しておきます。
当方の環境EXCEL365で検証した方法ですが、ご質問者の環境でうまくいくか保証できません。必ずバックアップをとった上でお試しください。
オリジナルのシートはフィルタをかけたまま解除しない前提です。手順は以下のとおりです。
(1)No.5の回答で示した添付画像①のようなデータがsheet1にあり、添付画像②のようなフィルタがかかっている状態だとします。
(2)上記(1)のシートを「シートの移動またはコビー」を使って複製します。これをとsheet2とします。
(3)No.5の回答で示した添付画像②のように、複製したsheet2に、ご質問者のいう「数式」を記述します。例ではC列に記述します。これを数値にしてsheet1に反映させるのが目的です。
(4)今回回答の添付画像(以下「今回画像」という)①のようにsheet2の未使用の列を使ってに可視データ行全てに、オートフィル等で「1」を入力します。例ではE列を使っています。
(5)今回画像②のようにsheet2のフィルタを解除し、(オリジナルであるsheet1はフィルタ解除してはいけません)「数式」を入力した列を全てコビーし未使用列へ値コピーします。例ではC列をG列へコピーしています。
(6)今回画像③フィルタ機能を使ってE列でフィルタをかけて「空白セル」(つまり「1」以外)の行を抽出します。
(7)フィルタがかかった状態でC列の可視セルを「ALT+;」で選択し(今回画像③)、コピー先をCTRLキーを押しながら選択して、「CTRL+R」でコピーします(今回画像④)。これにより(3)で数式を記述したセル以外を元に戻します。
(8)再度フィルタを解除し、(4)で「1」を入力した列(例ではE列)で最初に「1」が登場する行のG列のセルを探します。そのセル以下の全てのG列のデータをCTRL+Cでコビーします(今回画像⑤)。
(9)フィルタがかったままのsheet1の数式記述列(例ではC列)の可視セルの先頭行データのセル(フィルタ行直下のセル)を選択し(今回画像⑥)、CTRL+Vで貼付けします(今回画像⑦)。
これで、フィルタをかたまま数式を数値化できるはずです。ご質問者の環境ではフィルタ解除不能につき確認困難ですが、sheet1のフィルタを解除して数式を表示させてみると必要な部分のみ数値化されていることが確認できます(今回画像⑧)。
なお、(7)で右方向へのコビーを行っていますので、右方向コビーで「数式がエラーとなる」ような場合、この方法は使えません。
「数式がエラーとなる」というのは、単に「エラー表示になる」という意味ではなく、「数式バーに#REF!が表示されている」など「数式そのものがエラー」という意味です。
No.9
- 回答日時:
No.2です。
ずいぶん難しそうなマクロを出してきましたね!!
数式を値に変えたいだけでしょ!!値張り付けにこだわる必要もないですよね?
個人的には、こんなので十分だと思うのですが、いかがでしょう。
Sub sample()
With Selection
.Value = .Value
End With
End Sub
ありがとうございます。
ご教示いただいた構文をもとに、結果的に下記構文を利用することになりました(フィルターで抽出した行に対しても有効に機能させるために下記のようにする必要があるとのことです(私は理解できておりませんが、))
Sub 値に変える()
For Each c In Selection.SpecialCells(xlCellTypeVisible)
c.Value = c.Value
Next c
End Sub
No.5
- 回答日時:
ご質問者の作業されているEXCELブックで以下のような作業が可能なのか、また、以下の手順がご質問者のご希望に沿ったものなのか判りませんが、一応できる手段を考えてみました。
添付画像をご覧ください。
(1)オートフィルターの対象となる添付画像①のような表があったとします。C列には「B列×2」という数式が入っています。
(2)画像の例ではA列を「3」に絞り込むフィルターをかけ、抽出されたC4に「B列×3」という数式を上書きし、C列の可視セルにコピーしています。(添付画像②)
(3)一旦、オートフィルターを解除し、C列をコピーし、使用していない列(画像ではG列)に値で貼付けします。(添付画像③)
(4)再度オーフィルターで上記(2)と同様にフィルターをかけ、見出し以外のG列の可視セルを「ALT+;」で選択し、コピー先のC列の可視セルも同様にをCTRLキーを押しながら選択します。その状態で、ALTを押したまま、「HFIL」の順にキーを押すと、選択されたG列の可視セルがC列にコピーされます。(添付画像④)
(5)(4)の結果、意図どおりにコピーされたか、オートフィルターを解除し、検証したものが添付画像⑤です。フィルターがかかった状態のまま、抽出されたセルのみ、飛び飛びにコピーされていることが確認できます。これで対象セルが数値化できました。
あとは作業に使用したG列の内容をデリートすれば終了です。
冒頭にも述べましたが、ご希望に沿うのか、作業可能かが不明なので、まずは、原本をコビーしてこの手順をお試しください。
No.3
- 回答日時:
こんばんは
機能にないことを好きなやりで行いたければ、マクロを作成すれば、ある程度までは実現できるでしょう。
マクロを作らずにやるのなら、機能的に許されている範囲で行うしかありません。
>抽出した状態のため形式を選択して貼付けを使用することができない
必ずしもそうではありません。
抽出状態でも、連続したセル範囲であれば「値のペースト」は可能です。
ですので、範囲を分割して行うことで、ご希望の操作は可能かと。
ショートカットを利用して操作すれば、比較的速く終わるとは思いますが、抽出の状態によっては、フィルターを解除した方が速いかもしれません。
インターネット上で下記構文を取得しPERSONAL.XLSBの標準モジュールに保存、数式をクリップボードに
コピーした状態でマクロ実行しましたが、値の貼付けを行うことができません(エラーであることを
示す音が鳴りました。ペーストしようとしたセルには、何も貼り付けられませんでした)。
なお実行方法については、[開発タブのマクロ]→[ValuePasteを選択]→[実行] の手順で行いました。
Sub ValuePaste()
Dim vClip As Variant
On Error Resume Next
vClip = Application.ClipboardFormats
If vClip(1) = True Then
Beep
Exit Sub
End If
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
当方マクロ未経験者ですが下記を加工する ないしは別の何らかの構文を利用することで、
値の貼付けを行うことができるようになりたいのですが、何か良い方法はないでしょうか、?
No.2
- 回答日時:
一般機能で出来ない場合は、マクロを組みましょう!!
選択されているセルに対して、.Value=.Valueだけで出来ちゃうと思いますよ。
インターネット上で下記構文を取得しPERSONAL.XLSBの標準モジュールに保存、数式をクリップボードに
コピーした状態でマクロ実行しましたが、値の貼付けを行うことができません(エラーであることを
示す音が鳴りました。ペーストしようとしたセルには、何も貼り付けられませんでした)。
なお実行方法については、[開発タブのマクロ]→[ValuePasteを選択]→[実行] の手順で行いました。
Sub ValuePaste()
Dim vClip As Variant
On Error Resume Next
vClip = Application.ClipboardFormats
If vClip(1) = True Then
Beep
Exit Sub
End If
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
当方マクロ未経験者ですが下記を加工する ないしは別の何らかの構文を利用することで、
値の貼付けを行うことができるようになりたいのですが、何か良い方法はないでしょうか、?
No.1
- 回答日時:
>一度フィルター解除し数式を数値に変更後再度フィルターをかけて復旧する ということは実務上できません…。
でも、一般機能ではそれしか方法ないと思いますよ。
インターネット上で下記構文を取得しPERSONAL.XLSBの標準モジュールに保存、数式をクリップボードに
コピーした状態でマクロ実行しましたが、値の貼付けを行うことができません(エラーであることを
示す音が鳴りました。ペーストしようとしたセルには、何も貼り付けられませんでした)。
なお実行方法については、[開発タブのマクロ]→[ValuePasteを選択]→[実行] の手順で行いました。
Sub ValuePaste()
Dim vClip As Variant
On Error Resume Next
vClip = Application.ClipboardFormats
If vClip(1) = True Then
Beep
Exit Sub
End If
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
当方マクロ未経験者ですが下記を加工する ないしは別の何らかの構文を利用することで、
値の貼付けを行うことができるようになりたいのですが、何か良い方法はないでしょうか、?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 条件付き書式について 1 2022/12/14 20:38
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Visual Basic(VBA) シート間で同じ値があったら指定範囲をコピーして貼り付け 1 2022/11/07 08:01
- Excel(エクセル) excelで可視セルのみ置換 3 2022/08/04 11:02
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Excel(エクセル) データ入力規則リスト 空白を無視 3 2022/07/13 15:11
- Word(ワード) スナップショットをWordに張り付けるさい、「形式を選択して張り付け(S)」を選択すると複数の形式を 1 2022/06/06 23:26
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2022/04/01 12:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
COUNTIFのやり方を教えてくださ...
-
PDFファイルから特定の文字を検...
-
X-Ripperというフリーウェアに...
-
「パラメータが少なすぎます。3...
-
PDFファイル/抽出許可され...
-
Accessで○ヶ月前以前を抽出する...
-
PDFファイルを一部分だけ保存し...
-
AccessのWHERE句において、変数...
-
Access2003 式ビルダでのLike...
-
MS ACCESSクエリで教えてください
-
Access クエリ抽出条件の「Bet...
-
動画から『連続した画像』を抽...
-
ACCESS クエリ 条件以外のレ...
-
2段層化標本抽出とは・・・
-
エクセルで、抽出したデータだ...
-
ACCESSのクエリー抽出条件にIIF...
-
エクセル関数で住所から丁目番...
-
Accessの選択クエリの抽出条件...
-
ヒポクラテス医学に詳しい方よ...
-
【Access】条件未入力時、全件...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
「パラメータが少なすぎます。3...
-
PDFファイルから特定の文字を検...
-
AccessのWHERE句において、変数...
-
エクセルで色の付いたセルを抽...
-
ACCESSのクエリー抽出条件にIIF...
-
【AccessVBA】レコードセットOp...
-
Excel 文字列から6桁の数値の抽出
-
PDFファイル/抽出許可され...
-
X-Ripperというフリーウェアに...
-
アクセス 同じフィールド(テキ...
-
未審査請求包袋抽出表作成とは...
-
access クエリ yes/no型のクエ...
-
ACCESS クエリ 条件以外のレ...
-
血から鉄って作れないですか?
-
エクセル関数で住所から丁目番...
-
Access チェックボックスを利用...
-
COUNTIFのやり方を教えてくださ...
-
エクセル VBA メール本文に指定...
-
Accessの選択クエリの抽出条件...
おすすめ情報