現在、Excelで決算の資料を作っているのですが、型番号が重複しているもの例えば、
LA 58
LA 59
LA 60
などLAが重なって分かりにくいので、LAの部分を簡単に省略する方法などがありましたら教えていただけないでしょうか?

A 回答 (2件)

LA58などのLAの部分をEXCEL関数で、どう判別するかが問題です。


数字とそれ以外を分けるという発想で良いのではと思うが、質問はあいまい。
この切り出す関数は相当難しいのだ。
別の空き列に
=LEFT(A2,MIN(FIND({"0","1","2","3","4","5","6","7","8","9"},A2&"0123456789"))-1)  と入れる
例 データ
A列  空き列
abx12abx
LA567LA
fght23fght
s1235s
LA58LA
LA62LA
LA1LA
ここで A7:C9 C列は結果 とすると
LA58LALA58
LA62LA 62
LA1LA 1
C列C7の式は
=IF(B7=B6,REPT(" ",LEN(B7))&SUBSTITUTE(A7,B7,""),A7)
このように複雑になる。
条件付書式でやるとしてもこの数式が顔を出す。
だから関数ではあきらめたほうが良いだろう。
VBAならプログラムは複雑になっても、シートの表に出ない形でやれるが。
    • good
    • 0

1つのセルの中に「LA58」のように一つの言葉で記入してあっては,簡単な自動化の方法はありません。



#マクロを勉強して頑張って処理すればまぁなんとかなるかも?という具合ですが,それでもキチンと考えて作らないとたとえば2つ目の「LA59」は一つ上の「LA58」と「LA5」まで同じなので「9」だけ表示,みたいな頓珍漢になります

あなたがアタマで考えている「同じ」と「同じではない」をもうちょっとキチンと整理して,たとえば型番の記号で「LA」の部分と「58」の部分で分けて良いなら,その2つに型番記号を分けて2つのセルに分離して書き込むような準備をすれば,エクセルの条件付き書式などを使って簡単に省略表示もできます。




参考:
ALT+F11を押す
現れたシートに下記をコピー貼り付ける

sub macro1()
 dim h as range
 dim i as long
 for each h in range("A2:A" & range("A65536").end(xlup).row) 'A列に型番の場合
 for i = 1 to len(h.text)
 if isnumeric(mid(h, i, 1)) then
 exit for
 end if
 next i
 if left(h.text, i -1) = left(h.offset(-1).text, i -1) then
 h.characters(1, i -1).Font.colorindex = 2
 end if
 next
end sub

ファイルメニューから終了してエクセルに戻る
マクロを実行する
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報