B列のセルに
3/3
3/3
3/3
3/4
3/4
3/5
3/5
3/5

という風に、同じ日付が入力されているとします。
同じ日は無視して、これを、3と数えることはできますか?

同じ日付を空白にすれば、COUNTA関数で出来ると思いますが、
このリストは、このままで、
同じ日付を無視して、数えた結果、
3と返ってくる、関数、もしくは、他の方法があったら、教えてください。
よろしくお願いいたします。

A 回答 (1件)

最初の3/3が入っているセルをB1として話を進めます。



C2に =if(B1=B2,0,1) と入力して、これらをC8までコピーします。
そうすると日付が変わった行のC列だけが「1」になるはずです。
あとは「3」と表示させたいセルに =SUM(C2:C8)+1 と入力してください。

もっとデータが増えていくのなら、=SUM(C:C)+1 としておけばC列全体を
合計しますから楽かもしれません。

# もちろん作業用のセルはC列である必要はありません。
    • good
    • 0
この回答へのお礼

ありがとうございます。できました。
SUM関数は、+1使わなくても、大丈夫でした。
本当に助かりました。

お礼日時:2001/04/02 06:30

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCEL: 日付のセルに1/2/3と入れると、2001/2/3と解釈されるが、2003/1/2と解釈させるには?

タイトルのとおりです。アメリカでは、1/2/3と書くと普通は2003年1月2日と解釈されます。
EXCELにて、 日付のセルに1/2/3と入れると、2001/2/3と解釈されますが、表示形式は2/3/01と指定できるにもかかわらず、入力形式は年/月/日と固定されていますよね。これは何とかならないでしょうか?
入力→解釈→表示が全て「月/日/年」と一貫していると、いちいち翻訳せずに済むのですが・・・。

Aベストアンサー

コントロールパネルの「地域と言語のオプション」で設定できます。

【手順(WinXPの場合)】
1.[スタートメニュー]-[設定]-[コントロールパネル]を選択
2.コントロールパネルの「地域と言語のオプション」を開く
3.「地域オプション」タブの「標準と形式」で「英語(米国)」を選択
4.[適用]ボタンを押す
5.[OK]ボタンで画面を閉じる
⇒Excelで「1/2/3」と入力すると「2003/1/2」と認識される

※Windows全体が手順3で選択した表示形式に変わります。

Qエクセルで、A列に日付をB列に曜日、C列からF列までにデータを入れるよ

エクセルで、A列に日付をB列に曜日、C列からF列までにデータを入れるように作成しています。
条件付書式で土日祭日の場合はC列からF列に色を表示させています。
この色付セル(土日祭日)の場合にはデータ入力が無いので自動で0を表示させ、なおかつデータ入力が出来ないようにしたいのですが、そのようなことは出来るでしょうか。エクセルは2003を使ってます。

Aベストアンサー

C2セルに以下の数式を入力します。

=IF(AND($A2<>"",WEEKDAY($A2,2)>5),0,"")

同様にC2セルに以下の入力規則を設定します。

「データ」「入力規則」で「ユーザー設定」にして数式欄に以下の式を入力します。

=WEEKDAY($A2,2)<6

最後にC2セルを右方向および下方向にオートフィルします。

QEXILEのカウント関数について教えて下さい。 40行あるA列に同じ文字をセルに入力。B列には異なる

EXILEのカウント関数について教えて下さい。

40行あるA列に同じ文字をセルに入力。B列には異なる文字をセルに入力。C列にA行とB行を結合した文字を表示しています。
D列にC列の行ごとで同じセルの数をカウントしたいと思っていますが
C列は関数がある為、関数をカウントしてしまいます。D列は、40行全て40と表示してしまいます。表示されてない文字はカウントしない様に出来ないでしょうか。教えて下さい。

Aベストアンサー

No.1です。

数式は2行目に入れているのですね?
>何も表示されてない時に1048575と途方にもない・・・

Excel2007以降では最終行が1048576行目になります。
データがない場合は空白セル数(数式は入っているが空白に見えている)セル数が表示されているものと考えられます。

このような場合はエラー処理が必要になります。
一般的にはIF関数で対処できます。
(エラー処理は色々な場面で出てきます)

D2セルの数式を
=IF(C2="","",COUNTIF(C:C,C2))
としてフィルハンドルで下へコピーしてみてください。
数式の意味
C2セルが空白に見えている場合は何も表示しない、
そうでない場合はC列にあるC2セルの個数を表示
といった感じになります。

※ 厳密にいえば数式が入っているので「空白」ではないのですが
現段階ではこの程度でやめておきます。m(_ _)m

QEXCELで同じ数字が入ったセルを空白にする方法。VLOOKUP関数。IF関数。

お世話になります。
エクセルで
00101 00101
00102 00102
00104 00103
00103 00105
と二列の文字が並んでいます。
このうち左と右の数字が同じものを空白にする関数があれば式を踏まえて教えてください。
上の例で言いますと
00104 00105
以外を空白にする方法です。
一番左上のセルを一列目の一行目と考えてください。
よろしくお願いします。

Aベストアンサー

丸投げ質問?

セル A1 における[条件付き書式]は次のとおり
数式が    =COUNTIF($A$1:$B$4,A1)>1
フォント色  白

QA列とB列の重複を抽出したいのですがA列とB列の値は一部だけ同じ文字です。ご教示お願いします。

エクセル初心者です。重複を見つけるのが仕事です。いろいろやってみたのですがうまくできません。
お知恵をお貸しください。

A列には企業名が入力されています。
B列にも企業名が入力されていますが全く同じ文字ではないのです。

たとえばこういうことです。
A1 (有)雪見酒      B1  雪見
A2 株式会社豪雪地帯   B2 (株)豪雪地帯
A3 ゆきかき本舗     B3 (有)ゆきかき本舗

A列にある企業名とB列にある企業名が同じであればセルを塗りつぶすか○を表示させるように
したいのです。
重複を見つけるのが目的なので、ほかの方法でもかまいません。
すみません、A列のセルとB列のセルが全く同じ名前ならば重複が見つけられたのですが
ここから先がどうしてもわからないのです。。。
申し訳ありませんがどうか教えてください。。。

Aベストアンサー

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim nameT1(maxrow1)
ReDim nameT2(maxrow2)
Range("C1:" & "D" & maxrow2).Value = ""
Call makeTable(nameT1, "A", maxrow1)
Call makeTable(nameT2, "B", maxrow2)
For row1 = 1 To maxrow1
For row2 = 1 To maxrow2
If Cells(row2, "C") = "" Then
If Mymatch(nameT1(row1), nameT2(row2)) = True Then
Cells(row2, "C").Value = "○"
Cells(row2, "D").Value = row1
End If
End If
Next
Next
t2 = Time
MsgBox ("チェック完了 処理時間=" & Minute(t2 - t1) & "分" & Second(t2 - t1) & "秒")
End Sub
'余分な文字を削除した結果をテーブルに格納する
Private Sub makeTable(ByRef nameT() As String, ByVal col As String, ByVal maxrow As Long)
Dim row As Long
Dim ary As Variant
Dim name As String
Dim i As Long
ary = Array("㈱", "(株)", "株式", "(有)", "有限", "会社")
For row = 1 To maxrow
name = Cells(row, col).Value
For i = 0 To UBound(ary)
name = Replace(name, ary(i), "")
Next
nameT(row) = name
Next
End Sub
'企業名が一致かどうか判定する
Private Function Mymatch(ByVal name1 As String, ByVal name2 As String) As Boolean
Mymatch = False
Dim pos As Variant
pos = InStr(1, name1, name2, vbTextCompare)
If pos > 0 Then Mymatch = True
End Function
-----------------------------------------------------
一致の精度が悪ければその旨補足してください。
(一致すべきものが一致しない、一致してはいけないものが一致している)
100%解決できる保証はありませんが、多少のチューニングは行います。

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim ...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報