I am confused with the following sentences:

You are right, I have been saying it.

You are right, I have been said it.

What would be the difference between the two sentences?


3 Answers 3


"I have been said it" is grammatically incorrect. As said is past tense it would just be "I have said it" or even "I said it".

The difference between "I have been saying it" and "I have said it" is that the former denotes multiple instances. With "I have said it" then the thing it is referring to could have been said just once.

In terms of grammar I said/I have said is past tense, whereas I have been saying is perfect tense.


I have been saying it.

In this sentence the perpetrator of the action is I, and this is fine and correct.

I have been said it.

This sentence is wrong because to be + past participle is the passive voice, which means someone else has said it to me, and said as a past participle only refers to what was said, not to whom. Instead, this sentence could be changed to:

I have been told it.

Told as a past participle can refer to the person to whom something was said, so it works, meaning "Someone/people/whoever has told me it".

The first sentence conveys the idea that you, the speaker, have repeatedly said something. Perhaps it came up because an idea just recently got popular that you liked all along or something similar. The second sentence means that someone or some people have told you it, whatever it is. Maybe you got asked if you knew someone's name that you've never talked to, but someone had already told you.


'I have been saying it' is present perfect continuous that it is used to express an ongoing action that started in the past and is still going on.

But *'I have been said it' is incorrect because it appears to be passive which is not, and its active structure would be *'It has said me' that makes NO sense.

But you can say:

It has been said to me/him/them ... (Passive)


I/he have/has said to someone something. (Active)

You cannot say someone something or to do something. Instead, you should use tell.

You must log in to answer this question.