スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[ --/--/-- --:-- ] スポンサー広告 | CM(-)

Excelの関数



Excelでこの様な表示を行う方法です
今回はFIND,MID,LEFTの各関数を使用することによって出来ます

先ずは一番下と一番上はコピペでは無理なので以下の様に入力します
D6セルに以下の関数を入力します
=LEFT(D4,FIND(",",D4)-1)
LEFT関数は左から指定された文字列を取得します
FINDは指定された文字列の位置を返します(同一のものがある場合は左が優先される)
つまり
FINDでは
D4セルのA1,A2,A3,A4内にある一番左の「,」の位置を返してくれます
今回は3文字目にあるのでそのままだとA1,が表示されてしまいます
従って最後に−1を入れているのです

続いて以下の関数をD7に入れ下にコピーします
=LEFT(MID($D$4,FIND(D6,$D$4)+LEN(D6)+1,LEN($D$4)),FIND(",",MID($D$4,FIND(D6,$D$4)+LEN(D6)+1,LEN($D$4)))-1)

LEFT先ほど行ったので赤色の箇所の説明と青色の箇所の説明を行ないます
MID($D$4,FIND(D6,$D$4)+LEN(D6)+1,LEN($D$4))
MIDとは文章のスタートの位置と最後の位置を決めて取り出すものです
$D$4で絶対参照にして値を固定します、続いてD6にはA1と出ていますので
A1はどの位置か調べます、そしてA1の文字数分と,分を足してA2,A3,A4という結果を弾き出しています

あとは先ほどのD6と同様のことを青文字で行うだけです

ただ最後になると,がなくなるとFINDでエラーになりますので一番下に以下の文を追加すれば完璧でしょう
=MID($D$4,FIND(D8,$D$4)+LEN(D8)+1,LEN($D$4))

ただデータ量が多いと大変なので
D6には
=LEFT(D4,FIND(",",D4)-1)
D7に以下のを入れて下にコピーすればいいかも知れません
=IFERROR(LEFT(MID($D$4,FIND(D6,$D$4)+LEN(D6)+1,LEN($D$4)),FIND(",",MID($D$4,FIND(D6,$D$4)+LEN(D6)+1,LEN($D$4)))-1),MID($D$4,FIND(D6,$D$4)+LEN(D6)+1,LEN($D$4)))


IFERRORの説明は以下の通りです
=IFERROR(関数,関数がエラー時の時の内容)
なおIFERRORはEXCEL2007以降のみ使用可能です。

以前は
IF(ISERROR(関数),エラー時の内容,関数)
といった様に書いており関数を2度書く手間があったのです。
現在はExcel2007もサポートが終わってるので大体のPCで使用可能だと思います

では皆さまいいExcelライフを

[ 2018/03/11 18:11 ] プログラム関係 | CM(0)
コメントの投稿








上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。