- ベストアンサー
エクセル2003 文字のカウントについて
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
>ずいぶん近づいて来ました あっそう 質問の小出しは嫌われますよ >一つのセルに物件が2件以上来る場合もあります。 >最後の行に改行が入っているとカウント数が相違します 回答するたびにこれではね、最後にしてもらいたいものです '標準モジュールへ Function セルの物件名を数える(セル範囲 As Range) As Integer Dim Rng As Range Dim tStr As Variant Dim i As Integer For Each Rng In セル範囲 If Rng.Value <> "" Then tStr = Split(Rng.Value, vbLf) For i = 0 To UBound(tStr) If tStr(i) <> "" Then セルの物件名を数える = セルの物件名を数える + 1 Next i End If Next Rng End Function
その他の回答 (7)
- hige_082
- ベストアンサー率50% (379/747)
>一つのセルに物件が2件以上来る場合もあります。 そうですか そうなると、関数を作った方がスッキリすると思います '標準モジュールへ Function セルの物件名を数える(セル範囲 As Range) As Integer Dim Rng As Range Dim tStr As Variant For Each Rng In セル範囲 If Rng.Value <> "" Then tStr = Split(Rng.Value, vbLf) セルの物件名を数える = セルの物件名を数える + UBound(tStr) + 1 End If Next Rng End Function 上のマクロを標準モジュールにコピペすると 関数の選択ダイアログに「セルの物件名を数える」と言う関数が現れます 後はセルのB8へ =セルの物件名を数える(B2:B7) と、入力するだけ 以上参考まで
補足
回答ありがとうございます。 ずいぶん近づいて来ましたが、最後の行に改行が入っているとカウント数が相違します。 その辺りを何とかできないでしょうか? よろしくお願いします。
- tom04
- ベストアンサー率49% (2537/5117)
- KURUMITO
- ベストアンサー率42% (1835/4283)
E2セルには次の式を入力してE7セルまでオートフィルドラッグします。 =COUNTIF(B2:D2,"・*"&CHAR(10)&"・*")+COUNTIF(B2:D2,"・*") B8セルには次の式を入力してD8セルまでオートフィルドラッグします。 =COUNTIF(B2:B7,"・*"&CHAR(10)&"・*")+COUNTIF(B2:B7,"・*")
- okormazd
- ベストアンサー率50% (1224/2412)
=COUNTIF(B2:B7,"・*")+COUNTIF(B2:B7,"・*・*")
補足
一つのセルに物件が2件以上来る場合もあります。 いくつ来ても大丈夫な式にするにはどうすればいいでしょうか?
E2: {=SUM(LEN(B2:D2)-LEN(SUBSTITUTE(B2:D2,"・","")))} B8: {=SUM(LEN(B2:B7)-LEN(SUBSTITUTE(B2:B7,"・","")))} 【注】何れも配列数式です。
- hige_082
- ベストアンサー率50% (379/747)
一案です =COUNTA(B2:B7)+COUNTIF(B2:B7,"*"&CHAR(10)&"*")
補足
一つのセルに物件が2件以上来る場合もあります。 いくつ来ても大丈夫な式にするにはどうすればいいでしょうか?
- akiomyau
- ベストアンサー率43% (555/1280)
何々を含むといった関数は用意されていませんので あまりスマートな式とは言えませんが 以下のような式でどうでしょうか。 =LEN(CONCATENATE(B1,B2,B3,B4,B5,B6,B7))-LEN(SUBSTITUTE(CONCATENATE(B1,B2,B3,B4,B5,B6,B7),"・",""))
お礼
ありがとうございました!! 完璧です! 思った通りの数値を計算してくれました。