準・究極の選択

1、A列とB列にあるものが一致しているか確認する関数。(ただし並び順が異なる)

A列  B列
りんご ぶどう
いちご りんご
ぶどう いちご
みたいな場合。

A列にも、B列にも「りんご」「いちご」「ぶどう」は、順番こそ異なれどあるわけですが、
これを目で見て確認ではなく、関数で確認する方法はありませんか?


2、B列 C列にあるものをA列に一気に移動する関数

A列  B列  C列
   いちご
       ぶどう
   みかん
       ばなな
みたいになっているとします。
A列のセルは空白です。
B列、C列は歯抜けです。
それを、全部左のA列に移動させ、

A列  B列  C列
いちご
ぶどう
みかん
ばなな
みたいにする関数はありませんか?

以上です

  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (3件)

1.


MATCH関数でできます。
A列のセル値がB列に存在するかは、例えばD1セルに『=MATCH(A1,B:B)』
B列のセル値がA列に存在するかは、例えばE1セルに『=MATCH(B1,A:A)』
と入力してD1~E1セルを下方向にコピペすればよいです。
一致していれば、範囲の何番目のデータが一致しているかの値が表示されます。
一致がなければ、#N/Aのエラーがでます。IFERROR関数などを使ってエラー処理をすれば、任意の表示をさせることができます。

2.
CONCATENATE関数でできます。
A1セルに『=CONCATENATE(B1,C1)』と入力して、下方向にコピペすればよいです。
ただし、文字列をつなぎあわせる関数なので、B列とC列の両方に文字が入力されている場合は『いちごぶどう』のようになります。
    • good
    • 0

こんにちは



1)各セルの値について、それぞれの列に何個あるかを数えて、全て一致しているかを確かめれば良いと考えられます。
方法はいろいろあると思いますが、例えば
=AND(SUMPRODUCT((COUNTIF(A1:A99,A1:A99)=COUNTIF(B1:B99,A1:A99))*1)=99,COUNTA(A1:A99)=COUNTA(B1:B99))
では、いかがでしょうか?

※ 範囲を広くしすぎると(=例えば全列とか)計算不能になるようなので、上例では1~99行までを対象とした例にしてあります。


2)ご質問文に例示の内容がイマイチはっきりしません。
>B列、C列は歯抜けです。
同じ行では必ずどちらかが空白というのであれば、単純にB列C列を連結するだけでよいでしょう。
例えば、A1セルに
 =B1&C1
のような式を入れれば良いです。
Office365環境等であるなら、A1セルに
 =B1:B99&C1:C99
のような式を入力すれば、下方にスピルされます。

どのセルが空白かわからない(=同じ行にふたつ値がある場合もある)場合に、これを1列にして、B1,C1,B2,C2・・・のような順として考え、かつ、空白セルを除いて詰めて表示したいという意味であるなら・・
同じく、365環境等であれば、A1セルに
 =TEXTSPLIT(TEXTJOIN(CHAR(27),1,B1:C99),,CHAR(27))
などを入力することで、必要範囲まで下方にスピルされます。

※ 2列分を1列にすることになるので、全列を対象にすることはできません。
せいぜい全行数の半分くらいまでとなります。
    • good
    • 0

1.countif関数を使えば条件に合うセルの数が得られます。

たとえば、=countif(B1,A:A)とすれば、B1の値がA列にいくつあるかわかります。
2.関数は値を求めるだけなので移動はできません。空白セル以外の文字列を寄せ集めるにはtextjoin関数を使います。A1セルに=textjoin(,TRUE,B1:Z1)と書けばB1からZ1までの文字列を結合したものがA1に表示されます。それをコピーして値貼付けして、B1以降をクリアすればお望みの結果となるでしょう。
    • good
    • 0

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


おすすめ情報