「ずっと~にいる」というとき、英語でどのように言えばよいのでしょうか。また「have been to ~」と「have been in ~」の違いは何なのでしょうか。今回は現在完了の have been to と have been in の違いについて解説します。
have gone to は「行ってしまった」
次の文を現在完了を使って1つの文にしなさい。
Takeshi went to Australia three days ago. He is still in Australia.
タケシはオーストラリアへ三日前に行きました。かれは今でもオーストラリアにいます。

こうかなぁ。

違います。それだと「3日間ずっとオーストラリアに行っている」となってしまいますよ。for three days は「3日間」という期間を表します。これを現在完了で使うと「3日間 (ずっと)……です」という「継続」の意味になりますね。飛行機に3日間乗り続けていることになってしまいますよ。

なるほど、「3日間ずっとオーストラリアにいる」という文にしないといけないんですね。

そもそも have gone to というのは、「just / ちょうど」「already / もう」といった語とともによく使われて「完了用法」になります。例えばこういう感じです。
Takeshi has already gone to Australia.
タケシはもうすでにオーストラリアに行ってしまった。
※ 最近のアメリカ英語では have gone to で行ったことがあるという「経験」をあらわすこともあるそうです。

今回の問題では「3日間ずっといます」なので、ここでは be動詞を使います。「He is still in Australia.」というように、実際に問題文でも be動詞を使っていますよね。
have been to は「~に行ったことがある」

be動詞を使うのですね。ということは、こうかなぁ。

うーん…have been to は「~に行ったことがある」という「経験」を表します。for three days は「三日間の間ずっと」という「継続」を表しているので、文として成り立っていませんね。

「三日間の間ずっとオーストラリアに行ったことがある」という意味になってしまうんですね。確かに変ですね。

「have been to」は、ever / [疑]今までに、never / [否]一度も~ない、before / 以前に、once / 一回、twice / 二回、 three times / 三回、……といった語とともによく使われて「経験用法」になります。例えば、こういう感じです。
Takeshi has been to Australia before.
タケシは以前にオーストラリアに行ったことがある。

また have been to は「~に行ってきたところだ」という「完了」をあらわすこともあります。「経験用法」か「完了用法」かは、使われている副詞や、話の流れで判断すればよいです。
Takeshi has just been to the store.
タケシはちょうどその店に行ってきたところです。
have been in で「ずっと~にいる」

「have gone to ~」も「have been to ~」もダメなら、どうしたらいいのだう。

問題文をもう一度確認しますね。
次の文を現在完了を使って1つの文にしなさい。
Takeshi went to Australia three days ago. He is still in Australia.
タケシはオーストラリアへ三日前に行きました。かれは今でもオーストラリアにいます。

この文の前半ばかりに注目するんじゃなくて、後半にも注目しましょう。
「タケシは3日前にオーストラリアに行って、今もオーストラリアにいます」つまり、「オーストラリアにいる」という状態が、3日間「継続」しています。だから後半の「オーストラリアにいる」を現在完了の文にしたらいいんですよ。

He has been in Australia. ……still は外しておけばいいのですか?

そうですね。still の意味は、現在完了の文自体に含まれているからね。その代わりといっては何だけど、「3日間」という期間をあらわす語句をつけておきましょう。

じゃ、こうなるんだね。

はい、正解です。最後にこれまでの話をまとめます。それぞれの用法とともによく使われる副詞とセットにして、整理しておくといいですね。
まとめ
have gone to ~ / ~に行ってしまった(完了用法)
have been to ~ / ~に行ったことがある(経験用法)
have been to ~ / ~に行ってきたところだ(完了用法)
have been in ~ / ずっと~にいる(継続用法)
コメントをどうぞ
ありがとう とてもわかりやすかったです。