エクセルに関してです。


①下記のようにセルAとセルBの列に数字がならんでいます。CにBにあってAにない文字を表示させるにはどうすればいいですか?この場合は「か」と「き」の表示になります。(そのような設定はエクセルで可能でしょうか?)

1ABC
2ああ
3いい
4うか
5えき
6おわ
7ら○
8け○
9わ○
※○は空欄

Cは1「か」2「き」の表示になるようにするにはどうすればいいですか?
数式があれば少し分かりやすく意味を添えていただければ助かります。

なにとぞよろしくお願い申し上げます。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/02/13 21:00:35
  • 終了:2007/02/20 21:05:02

回答(5件)

id:kaiton No.1

kaiton回答回数260ベストアンサー獲得回数342007/02/14 01:11:32

ポイント22pt

途中に1列作業列を作る方法ですが..

1行目10行目にデータがあるとします。


C1=IF(AND(B1<>"",ISERROR(VLOOKUP(B1,A$1:A$10,1,FALSE))),ROW(),"")

この式を下にコピー

B列が空白でなく、かつ(And)、Vlookup関数でB列の値をA列から検索しエラーなら > その行番号表示 それ以外なら空白

これで、B列の値のうち、A列に無い行はその行番号がC列に表示されます。


D1=IF(ROW()>COUNT(C$1:C$10),"",INDEX(B$1:B$10,SMALL(C$1:C$10,ROW())))

この式を下にコピー

Count関数でC列の数字の数を調べ、現在の行数より大きければ「空白」

もし否の場合(以下)なら、

  • Small関数で、C列を小さいほうから1番目~10番目を求め(C列の行数に相当)
  • Index関数で、B列の範囲からC列の小さいのから○行目を表示

1行目などに、見出しがあるなら、Row()の部分はRow()-1など調整が必要です。

C1=IF(AND(B1<>"",ISERROR(VLOOKUP(B1,A$1:A$10,1,FALSE))),ROW()-1,"")

D1=IF(ROW()-1>COUNT(C$1:C$10),"",INDEX(B$1:B$10,SMALL(C$1:C$10,ROW()-1)))


http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/count.htm#count

http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/vlookup.htm#ind...

id:snaruseyahoo No.2

snaruseyahoo回答回数491ベストアンサー獲得回数42007/02/14 11:02:30

ポイント22pt

セルCnにおいて(C列)IF(Bn<>An,Bn,"")としますと、C列には、「あ」{い」は表示されず、「か」「き」から表示されます。ただし、B列に空欄を作る場合は、必ず全角のスペースなどを

入力しておきませんと、C列に0が(B列の値が0とみなされるため)表示されます。

※エクセルでは<>が、NOT equalという意味です。その結果が、真(TRUE)であれば、左側の値Bnが、偽(FALSE)であれば、右側の値""(ヌル文字)が表示されます。

ダミーですが、よろしければごらんください。

http://www.geocities.jp/snaruse_intage/index.html

id:zuguimo No.3

zuguimo回答回数19ベストアンサー獲得回数32007/02/13 23:26:27

ポイント23pt

http://q.hatena.ne.jp/1171368032

マクロが使えるようでしたらマクロを使ってください。

ツールーマクロ―VisualBacicEditor

挿入ー標準モジュール

で以下のものを貼り付ければ勝手にやってくれると思います。

関数ではややこしそうで思いつきません。

なおデータ数が10個以上あるときは、"10" をデータの分だけ増やしてください。以上。


Sub Macro1()

'

'

Dim 番号, 次 As Integer '番号,次という名の変数を使うことにします。

次 = 1 '次はC列に書き込む行番号の変数で1から始めます。

For 番号 = 1 To 10 '1行から10行まで検索するために変数を動かします。

If WorksheetFunction.CountIf(Range("A1:A10"), Range("B" & 番号)) = 0 Then

'B列のある行の文字がA列になければC列に書き込みます。

'ワークシート関数のCOUNTIF関数を使い検索します。

Range("C" & 次).Value = Range("B" & 番号).Value

'A列にないときだけC列に書き込みます。

次 = 次 + 1 'C列の次の行に書き込む準備をします。

End If

Next 番号

End Sub

id:drill256 No.4

かえる回答回数175ベストアンサー獲得回数72007/02/13 23:03:11

ポイント23pt

マクロを使ったほうがよいと思います。

ちょっと無理やりですが、以下のやり方で出来ます。


D1~Dxxxまで以下の式を入れます。

=IF(ISNA(MATCH($B1,$A$1:$A$100,0)),1,0)


E1に以下の式を入れます。

=MATCH(1,$D$1:$D$100,0)


E2に以下の式を入れます。

=IF(ISNA(MATCH(1,OFFSET($D$1:$D$100,$E1,0,100,1),0)),"",MATCH(1,OFFSET($D$1:$D$100,$E1,0,100,1),0)+$E1)


E3~Exxxまでは、E2に入れた式をコピペします。


C1に以下の式を入れます。

=IF($E1>0,INDEX($B$1:$B$100,$E1,1),"")


C2~Cxxxまでは、C1に入れた式をコピペします。


これでいかがでしょうか?


http://dummy ←ダミーです

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 halmashauri 34 29 1 2007-02-13 21:27:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません