Excel

【Excel】1万行を超えるファイルで空白セルのみを選択する方法。

通常空白セルのみを抽出する方法としてはオートフィルターがよく用いられるが、
フィルタリング後の項目が1万種類を超えるとそれ以降が省略されてしまうため、
空白セルのみをチェックして表示することができなくなる。

1

この場合、空白セルを選択して削除するためには下記の方法を取る必要がある。

1, まずは対象の行全体を選択する。

2, その状態で「F5」キーを押す。

3, 下のようなウィンドウが現れるので、左下の「セル選択」を押す。

2

4, 項目中の「空白セル」を選択し、「OK」を押す。

3

5, 選択列中の空白セルが全て選択された状態になるので、その中の一つを右クリックし、削除を選択する。

6, 削除の際に、「行全体」を選択することで1行まるまる消え去るため、オートフィルターと同等の効果を得ることが出来る。

業務上、数十万件を超えてくるのが当たり前なのでこれは非常に助かる機能。

 

【Excel】半角スペースで2分割した文字の左右をそれぞれ取得する。

めも。

■2分割した左側の文字列を取得する。

=LEFT(A1,FIND(" ",SUBSTITUTE(A1," "," "))-1)

■2分割した右側の文字列を取得する。

=RIGHT(A1,LEN(A1)-FIND(" ",SUBSTITUTE(A1," "," ")))

 

【Excel】列、行を入れ替える方法。

めも。

1, 列、行を選択

2, 「Ctrl + x」で切り取り状態にする

3, 入れ替え変えたい列、行の上で右クリック

4, 「切り取ったセルの挿入(E)」をクリック

完了。

 

【EXCEL】文字列が完全一位しているかどうか調べる。

めも。

=EXACT(A1, B1)

完全一致の場合「true」が返り、異なる場合は「false」が返る。

 

【Excel】列、または行全体を参照する方法。

めも。

関数で行全体や、列全体を参照したい場合、下記のように範囲を指定してやればよい。

※列全体の合計を求めたい場合。

=SUM(A:A)

※行全体の合計を求めたい場合。

=SUM(1:1)

 

【PHP】アルファベット記号を用いた26進数を生成する。

Excelの列番号を取得したくてやった時のメモ。

function getColKey($target) {
	for($i = 0; $i < 26; $i++){
		$alphabet[] = strtoupper(chr(ord('a') + $i));
	}
	$one = fmod($target, 26);
	$result = $alphabet[$one];
	$carry = ($target - $one) / 26;
	while($carry != 0) {
		$one = fmod($carry - 1, 26);
		$result = $alphabet[$one].$result;
		$carry = ($carry - 1 - $one) / 26;
	}
	return $result;
}

関数に数値を渡せばその番号目の列キーが帰ってくる。

下記例。

echo getColKey(24)."\n";
echo getColKey(235)."\n";
echo getColKey(2146)."\n";
echo getColKey(13461)."\n";

↓

Y
IB
CDO
SWT

 

【Excel】ユーザー定義関数を作成する。

メモ。

1, 「Alt + F11」を押してVBAエディタを開く。

2, 左側のプロジェクト一覧のところで右クリックし、そのメニューから「挿入(N)」→「標準モジュール(M)」を選択する。

1

3, あとは出てきたエディタに関数を記述してやれば、各シートから利用することが出来る。

2

 

【Excel】文字列連結を範囲指定で行う。

concatenate関数を範囲指定で行えないかと考えていたらよさげな関数が落ちていたのでメモ。

Function CONCATENATERANGE(ParamArray Elements())
    Dim c, ub As Long
    Dim t As String
    Dim rng, rngs As Range
    ub = UBound(Elements())
    t = ""
    For c = 0 To ub
        Set rngs = Elements(c)
        For Each rng In rngs
            If Not IsEmpty(rng.Value) Then
                t = t & rng.Value
            End If
        Next
    Next c
    CONCATENATERANGE = t
End Function

使用方法は下記の通り。

CONCATENATERANGE([範囲])

これはくっそ便利