今考えていることをまとめたり表現する -9ページ目

半角を全角にする・全角を半角にする

半角の文字列を全角にしたいとき、全角の文字列を半角にしたいときに使います。


関数です。


【全角→半角】

=ASC(文字列)


【半角→全角】

=JIS(文字列)



【使用例】

=ASC(LEFT(D8,1))

LEFT関数で引っ張ってきた文字列を半角にしたいときに使いました。

vlookupの検索値が複数ある場合

Excelの最初の難関としてvlookup関数があると思います。
でもこれをマスターするとExcelでしたいことをラクラクできるようになります。

ただ、vlookup関数は、検索値が2つ以上ある場合は一番上にある値しか返してくれません。


そのときに使うのがこんなやつです。

【使用例】
={IF(COUNTIF($B$9:$B$133,$A$136)<ROW()-135,"",INDEX($B$9:$C$133,SMALL(IF($B$9:$B$133=$A$136,ROW($B$9:$B$133)-8,""),ROW()-135),COLUMN()))}


長くて意味がわかりません。
使われている関数は、if関数・countif関数・row関数・index関数・small関数・column関数
あと、よく見ると「{}」こんなのがついているため、配列数式という考え方も必要。



分解。
vlookupの引数はどこに当てはまるのでしょうか。


検索値 →①(絶対参照)
範囲 →②(絶対参照)
列番号 →③
検索の型→使わない

【分解1】
={IF(COUNTIF($B$9:$B$133,①)<ROW()-135,"",INDEX(②,SMALL(IF($B$9:$B$133=①,ROW($B$9:$B$133)-8,""),ROW()-135),③))}



あとvlookupを少し応用して
検索値の範囲(範囲の1列目)→④(絶対参照)

【分解2】
={IF(COUNTIF(④,①)<ROW()-135,"",INDEX(②,SMALL(IF(④=①,ROW(④)-8,""),ROW()-135),③))}



あと残ったのは、row関数まわり。

逆から考えてみます。
ROW()-135 →⑤
ROW(④)-8 →⑥


⑤:値を返したいセル範囲の1行目を1にする
…ここでは、返したいところが136行目以降

…1にするために135を引いている

…ROW()-ROW($A$135)でもよい
⑥:vlookupの範囲の1行目を1にする
…ここでは、vlookupの範囲が9行目以降

…1にするために9を引いている

…ROW()-ROW($B$8)でもよい
【分解3】
={IF(COUNTIF(④,①)<⑤,"",INDEX(②,SMALL(IF(④=①,⑥,""),⑤),③))}


いくらかすっきりしました。

1列挿入

Excelでなんらかの一覧表を作っていて

作っている途中で1行追加したくなったとき

「挿入」ていう操作をすると思います。


そのときに右クリックして挿入


挿入


で「挿入」選ぶのがいいんだと思うのですが

どうも右クリックというのが好きになれません。


なのでショートカットキーを使います。



【挿入】

「Shift+Ctrl+;(セミコロン)」

(押すキーは同じだけどイメージ的には「Shift+Ctrl++(プラス)」のほうが近い)


で同じ操作をすることになります。



で、この挿入ですが

セル単位より列単位(行単位)でやることのほうが多い気がします。

マウスとかで列(行)全体を選択してから今のショートカットキーを使えばいいのですが

どうも上のほうにカーソルを動かして選択するというのが好きになれません。


なのでショートカットキーを使います。



【列全体選択】

「Ctrl+Space」(アクティブセルの列が全選択)

【行全体選択】

「Shift+Space」(アクティブセルの行が全選択)


と組み合わせてやると、パパっと増やせます。


ただ、ひとつ注意!

行選択の場合、日本語モードをオンの場合やセルを編集中の場合は

いくら「Shift+Space」を連打しても、セルの中にスペースができるだけなので要注意。

オンだったら「半角/全角」を押してあげればいいわけです。



さてまとめです。

【1列挿入する場合】

「Ctrl+Space」→「Shift+Ctrl+;(セミコロン)」

【1行挿入する場合】

(「半角/全角」→)「Shift+Space」→「Shift+Ctrl+;(セミコロン)」



オブジェクト指向

今までオブジェクト指向っていうのが何か、
いろんな人に聞いてもどうしてもわからなかったのだけど
昨日買った本読んでたら
ようやくなんとなくわかりました。

ある動作をするときに

オブジェクト指向以前は

1つのながーいプログラムを1箇所を書いていた(らしい)のだけど

オブジェクト指向では、

プログラムを部品として考えて

それを組み合わせて動作をさせる(らしい)


【私の理解】

動作:コピー→ペースト

オブジェクト指向以前:「コピー→ペースト」(ひとつのプログラム)

オブジェクト指向以後:『「コピー(1つのプログラム)」と「ペースト(1つのプログラム)」』(2つのプログラムの組み合わせ)


この本だと

プログラムを車にたとえて

車を作るときタイヤとかシートとかは別のところからもってくるでしょ?

車を作るときにまずボディ作ってそのあとタイヤ作ってくっつけてシート作ってくっつけるなってめんどうなことしないでしょ?

工業製品だと普通なんですよ。

こんな感じで書いてありました。

いちばんやさしい Java入門 (技評SE新書 004)/丸の内 とら
¥998
Amazon.co.jp

("" & filename & "")

変数とかを


Workbooks( )


の(    )の中に入れてやるとき


("" & 変数 & "")


とやるときってこういう風にやるのですが、

この「""」とか「&」とかって何なんでしょう。

スペースを入れる位置とかが混乱してしまいます。


そこで解釈として、


「"空白の文字列" & 変数 & "空白の文字列"」


と考えてみたのですが、果たしてこれは正しいのでしょうか。

でもこれだと納得できたので個人的にはよしとします。


【使用例】

Workbooks("" & filename & "").Worksheets("bb").Range("A1").Copy