エクセルでの質問です。
試しにA1に2020,B1に年,C1に5,D1に月,E1に1と
入力してA2に5/1と入力すると自動的にA2は
(2020/5/1)になります。
ここからが知りたいことです。match関数を使って
=match($A$1&"/"&$C$1&"/"&E1,A2,0)
をするとA2のところでエラー(#N/A)とでます。
私の中では先程の関数式の意味
=match(検索値:"2020/5/1" 範囲:2020/5/1 種類:完全一致)
になるはずでした。
なぜ、検査範囲がエラー起きたのか
そして、どうしたら直るのか教えて下さい
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは
エクセルは日付に関してはやや特別な扱いをしています。
実態は普通の数値なのですが、これを「日付である」と解釈した場合に一日を数値の「1」(少数以下は時分秒)と換算して計算します。
ご提示の例で、A2セルはこのような扱いがされており(日付型の数値はシリアル値と呼ばれています)、試しにA2セルの値はそのままで書式を「標準」や「数値」にしてみると「43952」と表示されます。
これが、上で言うところの「普通の数値」(=シリアル値)です。
一方で、$A$1&"/"&$C$1&"/"&E1 は文字列の連結となり、「2020/5/1」という文字列になります。
人間の見た目には「同じじゃないか」と思いますが、エクセルがA2セルの値として認識しているのは「43952」なので、数値と文字の違いもありますが値も全く違うものと認識されているので、検索してもヒットしません。
逆に、=MATCH(43952,A2,0) としてみると(人間にとっては意味不明ですが)、ちゃんと一致として検索されます。
>どうしたら直るのか教えて下さい
検索値をシリアル値に変換して検索することで可能になります。
日付をシリアル値にする方法はいくつかありますが、ご提示の例の場合
「年、月、日」であれば、
DATE($A$1,$C$1, E1)
ご提示の様な文字列であれば
DATEVALUE($A$1&"/"&$C$1&"/"&E1)
のように関数を用いて変換することができます。
この値を用いれば検索できるようになりますので、検索式を
=MATCH(DATE($A$1,$C$1, E1),A2,0)
=MATCH(DATEVALUE($A$1&"/"&$C$1&"/"&E1),A2,0)
などとすることで、検索できるようになります。
No.2
- 回答日時:
コンピュータでは「文字列」と「数値」は全く別のデータです。
この区別をしっかり付けないと 表計算ではミスを連発します。
例えば A1に「="123"」 B1に「123」と入力します。
C1に「=A1=B1」と入力すると「FALSE」が返りますね。
数式中「""」で囲ったものは「文字列」として扱われるので「123」
とは別ものとして扱われます。
当然「$A$1&"/"&$C$1&"/"&E1」も「文字列」です。
> 自動的にA2は(2020/5/1)になります。
A2の表示形式を「標準」にすると「43952」となるはずです。
これは入力した値が「1900年1月1日から数えて43952日目」で
あることを表しています。
「2020/5/1」の表に表示されていますが これらは実際にはシリア
ル値で表現された「数値」です。
「"2020/5/1"」と「2020/5/1」(実際には「43952」)は別もの
なので MATCH関数は「#N/A」を返します。
「2020/5/1」というシリアル値を作りたいなら 数式では一例として
=DATE(2020,5,1)
のように表現します。
=MATCH(DATE($A$1,$C$1,E1),A2,0)
No.1
- 回答日時:
「$A$1&"/"&$C$1&"/"&E1」は「2020/5/1」という文字列です。
「A2」は「2020/5/1」という日付です。
その違いではないかと思います。
=MATCH(DATEVALUE($A$1&"/"&$C$1&"/"&E1),A2,0)
のように、「DATEVALUE」関数で日付に変換してあげればいけると思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- その他(Microsoft Office) IF関数について教えてください 2 2022/05/10 13:31
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Excel(エクセル) ある範囲のセルに何を入力すると、別のセルに○を表示させる 3 2022/04/05 15:51
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) エクセルの表で A1にデータの入力規則でリストを作って、 (リス、キリン、ゾウとします) リストを選 4 2022/07/15 09:29
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセル関数教えてください 3 2022/06/21 10:22
- Excel(エクセル) WORKDAY関数 4 2023/06/08 13:23
- Excel(エクセル) エクセルでのVBA 2 2022/08/03 06:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 文字を増やしたい。
-
エクセルの計算
-
セルの内容表示が邪魔になる
-
Excel
-
Microsoft365に変えたのですが...
-
エクセル:一覧表に存在する文...
-
エクセルで日付を数字+アルフ...
-
エクセルでの作業計算方法について
-
エクセルで年休を管理する方法...
-
はがきについて。
-
【マクロ】その時、その時で変...
-
excelの不要な行の削除ができな...
-
Microsoft1Officeの互換ソフト...
-
エクセル関数を教えてください
-
Excel ピボットテーブルで日付...
-
【マクロ】読取専用のファイル...
-
【関数】適切な文字数の数字を...
-
時間によってファイル名が変わ...
-
ある列、或いは、ある行のセル...
-
UNIQUE関数が使えないバージョ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報