▼操作方法 : 住所から県名以降を取得する
(A1セルに「神奈川県横浜市...」と入力済みでB1セルに県名以降を表示させる例)
B1セルに、「=RIGHT(A1,LEN(A1)-FIND(“県”,A1))」と入力して[Enter]キーを押す
関数が3つも使われているので慣れない方はそれだけで戸惑ってしまうかもしれませんが、よく見ればそんなに難しいことをしているわけではありません。
やっていることは、数を数えることと、引き算だけです。
LEN関数は、何文字あるか数える関数です。
この例では住所のA1セルに何文字あるかを調べています。
FIND関数は県名だけを取り出すときにも使った関数で、A1セルの中で「県」という文字が何文字目にあるかを調べています。
LEN関数で調べた数(全体の文字数)から、FIND関数で調べた数(「県」という文字までの文字数)を引くと、「県」という文字から後(右側)に何文字あるかがわかります。
そこでRIGHT関数を使って、A1セルの右側から、LEN関数-FIND関数で得られた数だけ文字を取り出しています。「県」という文字の後の文字=住所の県名以降が取り出せるというわけです。
関数の入れ子(ネスト)は、関数初心者の方が躓きやすいところですが、一つ一つの関数がそれぞれ何をしているのか理解していくようにしてください。
Excelでも県名だけを取得することができます。
「県」という文字をみつけて、その左側を取り出せばOKです。
▼操作方法 : 住所から県名だけを取得する
※A1セルに「神奈川県横浜市...」と入力済みでB1セルに県名を表示させる例
B1セルに
「=LEFT(A1,FIND(“県”,A1))」
という数式を入力する
まず、「FIND(“県”,A1)」で、A1セルの中で「県」という文字が何文字目にあるかを取得し、次にLEFT関数を使って、A1セルから先にFIND関数で取得した文字数分の文字列を左から取り出しています。
普通の文で、特にエクセル的に処理しなくていい文書だったらブロックに分けてテキストボックスに入れてしまう方がベターです。
テキストボックスに出来ない部分は、セルを結合して対処するしかありません。
細かく調整できるようにA4の範囲のセルの幅は1くらいにしておいたほうが良いと思います。
小さければ結合すれば良いと思います。
※テキストボックス内の文字は表示よりも印刷するときのほうがなぜか少なくなってしまいますのでご注意ください。
VBA(Visual Basic for Applications)で、簡単にマクロを作成することができます。
▼すべてのオートフィルタを一括解除するマクロ
Sub RemoveFiltersAllWorksheets()
Dim objWorkSheet As Worksheet
For Each objWorkSheet In Worksheets
objWorkSheet.AutoFilterMode = False
Next
End Sub
AutoFilterModeプロパティをFalseにしてやれば、オートフィルタは解除できますから、すべてのワークシートに対して、AutoFilterModeプロパティをFalseにする処理を行ってやれば、オートフィルタを一括解除するマクロになります。
上記のマクロではFor Each Nextループの中で、AutoFilterModeプロパティをFalseにしています。
For Each Nextループの中でワークシートに対して何らかの処理を行うのは、Excelマクロの基本技ともいっていいものですので、標準で用意されていないような、すべてのシートに対する処理を行う機会が多いという方は、是非マスターされることをおすすめします。
オートフィルタでデータを抽出したときに、抽出結果のみの合計を計算する方法を調べている方の検索です。
合計を計算するワークシート関数といえば、もちろんSUM関数ですが、SUM関数を使った場合、フィルタをかけても合計値は変わりません。非抽出のデータまで含んだ合計になってしまいます。
そのため、オートフィルタの抽出結果のみの合計を計算する方法はないのかと調べてらっしゃるわけです。
▼操作方法:オートフィルタの抽出結果のみの合計を計算する
※C2:C15セルの合計をC16セルに表示する例
C16セルに
「=SUBTOTAL(9,C2:C15)」
という数式を入力
SUBTOATL関数を使うと、抽出結果の合計だけを計算させることができます。
SUBTOTAL関数の第1引数に、合計計算を意味する「9」を指定して、第2引数には合計したい範囲を指定すればOKです。
SUBTOTAL関数を使えばオートフィルタを実行して、抽出結果のみの合計が表示されることなどをご確認ください。