<   2006年 02月 ( 11 )   > この月の画像一覧

セルの内容を横方向へ分割する

以前にある人から、「請求書などで使いたいので、1つのセルに入っている金額などを1個ずつ別のセルに分割してくれ」と言われたことがあった。
下図で説明すると(図が単純たが・・・)内容を横方向へ分割するためにはCOLUMN関数を使うと便利なので、
B2に『=MID($I$4,COLUMN()-1,1)』と入力しあとはコピーする。
しかし、このままでは左にそろった状態なので多少体裁が悪かった。

で、右揃えで表示させたかったのでB4セルに
=MID(REPT(" ",6-LEN($I$4)) & $I$4,COLUMN()-1,1)』と入力。
この式の説明で数字の「6」だが、自分の仕事内容では6桁以上の数字を入力することはないので
桁数を6桁に限定しただけだが。
必要に応じてここの桁数は変更してもいいと思う。
e0080122_9424922.gif

[PR]
by slayer0210 | 2006-02-22 09:45 | エクセル一般

REPT関数

REPT関数は指定した文字列を指定した数だけ返してくれる便利?な関数だ。
例えば下図のように、『=REPT("■",C3)』と入力すれば、その数だけ■を返す。
繰り返し回数に小数点などを指定すると、切り捨てられてしまう。指定できるのはあくまでも正の整数だ。
e0080122_15503558.gif

実際には、こんな形でグラフを作る人がいるとは思えないが、そっけない表が少し派手になってよかった。
[PR]
by slayer0210 | 2006-02-20 15:53 | エクセル一般

行数と列数を求める

以前にROW関数で行番号などを求めてみたが、今回は選択した範囲の行数と列数を。
個人的にはマイナーな関数だ。
下図の、グレーで塗りつぶされた範囲の行数列数を数えてみる。
行数を数えるときは、任意のセルに『=ROWS(B4:E15)』と入力する。
列数は『=COLUMNS(B4:E15)』だ。
e0080122_1838995.gif

やはりマイナーではあるが、何かの折には使えるかもしれない。
[PR]
by slayer0210 | 2006-02-17 18:40 | エクセル一般

郵便番号と住所の関係

個人的に住所録を作る場合には、エクセル以外のソフトで作っているのであまり関係ないが、
以前に「エクセルで住所録を起こしてくれ」と頼まれたことがあった。
少しでも入力の手間を省こうと、郵便番号を入れたら住所が出るように・・・と。
郵便番号を変換すればたやすく住所が表示されることに着目した。
e0080122_8152474.gif

下図で説明すると、E2セルに『=ASC(PHONETIC(B2))』と入力しておく。
そして、住所1の列に住所を入力する際には、『247-0056』などのように郵便番号から変換して住所を入力するようにするのだ。
e0080122_8223334.gif
すると、住所1が確定したら自動的に郵便番号が表示される。
あまり使えないかもしれないが、ちょっとした手間は省けた。
[PR]
by slayer0210 | 2006-02-15 08:25 | エクセル一般

任意のシートを必要分だけコピーする(12枚)

先日、ある人が明細書の雛形のようなものを見せ、こう言った。
「これを12か月分欲しいから、ケツに12枚コピーして、シートの名前も変更しといて」と。
ちょうど暇だったので、手作業でコピーしても良かったのだが。

Sub シートコピー()
 Dim i As Integer
   For i = 1 To 12
     ’雛形がシート1にあったのだ
     Sheets(1).Copy after:=Sheets(Sheets.Count)
     ActiveSheet.Name = i & "月明細書"
   Next
End Sub
e0080122_1725996.gif

やり方や構文的にはどうあれ、目的のものが出来たので良しとする。
[PR]
by slayer0210 | 2006-02-12 17:04 | マクロ

オートナンバーのような感じで連番

昨日の続きだが、新しいデータを入力した時のみに番号を表示させたい場合がある。
下図で説明すると、名前を入力した時に番号が表示される、といった具合に。

B3セルに『=IF(ISBLANK(C3),"",ROW()-2)』と入力して必要分だけ下にコピー。
すると、名前の入力がされていない行には番号は表示されない。
e0080122_16181844.gif

ただ、数式にISBLANKをを使う必要性は余りない。単に『=IF(C3="","",ROW()-2)』でも全然構わないのだが、
自分的に" "を連続して使うのはどうも好みでないため、ISBLANKを使用してみた。
e0080122_1624481.gif

[PR]
by slayer0210 | 2006-02-12 16:24 | エクセル一般

Row関数で連番を作る

何らかの通し場号をつける場合は普通はオートフィルなどで作ったりするのだが(手入力もあるが)
下図のように不必要な行を削除すると番号が崩れてしまう。
e0080122_2319311.gif

連番を崩したくない場合は、ROW関数を使用して作ると便利だ。
下図で説明すると、セルB3に『=ROW()-2』と入力して下方向へコピーする。
すると1から始まる連番がふれる・・・という感じだ。
e0080122_23272734.gif

ここでROW関数について少し触れると、この関数は=ROW()と入力することによって、この式が入力された行番号を返してくれる。
よってB3に入力しているのでまずは行番号の「3」が返る。そこから「-2」することによって連番の頭の「1」という数字が出るということだ。
もちろん、行の削除を行っても連番は崩れない。
e0080122_23323032.gif

[PR]
by slayer0210 | 2006-02-11 23:33 | エクセル一般

簡単な行挿入と削除

行の挿入や削除を簡単に行うためにはShiftキーを押しながら任意の行数分ドラッグすればよい。
まず、あらかじめ表の中の行を選択しておく(このときに行全体を選択するとだめだが)
そしてShiftキーを押して、マウスを選択した行の右下に持ってくと、下図のような形に変化している。
そのときに任意の行数だけドラッグすれば簡単に挿入できる。
e0080122_83766.gif

また、行を削除する場合は、不必要な行を選択してからShiftキーを押しながらマウスを右下にあわせる。
e0080122_8413376.gif

上図のようにマウスポインタの形が変化したら、任意の行数文だけ上方向へドラッグ。
e0080122_84578.gif

[PR]
by slayer0210 | 2006-02-10 08:45 | エクセル一般

離れたセルに同値を入力

例えば、離れたセルがあってそこに同じ値を入力したい場合は、Ctrlキーを押しながらセルを選択する。
e0080122_21334253.gif

今の段階では選択した一番下のセル(C7)がアクティブになっている。
その時に、C7に目的の値を入力し、Ctrl+Enter すると一気に入力される。
e0080122_21474290.gif

すると下図のように同じ値が入力された。
e0080122_21491343.gif

[PR]
by slayer0210 | 2006-02-03 21:50 | エクセル一般

オートコンプリート一覧表示

上図のように同列と同じ文字列を入力しようとすると、オートコンプリート機能が働いて入力するのが楽になる。
e0080122_12345676.gif

しかし、下図のように同列に入力されている一覧が表示され、その値をキー操作で入力できるならば、もっと楽になる。
e0080122_1241786.gif

まずは、入力したいセルを選択しておき(アクティブ)ALT + ↓
すると、一覧が表示されてくるので、↓キーで目的の値を選択し、Enterキーで確定。
[PR]
by slayer0210 | 2006-02-02 12:46 | エクセル一般