Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Pro : Microsoft 365)
同じ記号を1つにする
投稿日時: 23/09/06 15:29:56
投稿者: 春麗

一行のデータの中に,もしも :(半角コロン)が二個以上続いていたら一つにする
 
と書きたいです.
 
aaa;bbbb;ccccc;;;ddd;;eeee;

aaa;bbbb;ccccc;ddd;eeee;
 
よろしくお願いします.

回答
投稿日時: 23/09/06 15:49:34
投稿者: 半平太

B1セル =REDUCE("",MID(A1,SEQUENCE(LEN(A1)),1),LAMBDA(pr,ar,IF(AND(RIGHT(pr)=";",ar=";"),pr,pr&ar)))

回答
投稿日時: 23/09/06 16:08:36
投稿者: Suzu

手っ取り早いのは
  
=SUBSTITUTE(SUBSTITUTE(A1,";;",";"),";;",";")
の様に、
SUBSTITUTE関数を ; が並ぶ 最大回数分 /2回分、ネストすれば良いかと。
  
  
aaa;bbbb;;ccccc;;;ddd;;;;eeee;;;;;
なら、
e の後ろに、; が 5回並びます。
その場合は、 5/2 = 2.5 → 小数点以下繰り上げ 3回
SUBSTITUTE を 3回ネストします。
  
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,";;",";"),";;",";"),";;",";")

投稿日時: 23/09/06 16:12:43
投稿者: 春麗

半平太さん
一気に解決しました.
どうもありがとうございました.
 
Suzuさん
この様なシンプルな考え方があったのですね.
凄く理解しやすいです.
どうもありがとうございました.